Spring Boot - Bean 的作用域单例和原型

发布时间 2023-10-31 16:11:37作者: Himmelbleu

单例

Spring Bean 默认作用域是单例的,也就是说 A、B、C 三个类被注入到 IoC 容器中之后,假如 B、C 都依赖了 A,那么它们依赖的 A 在内存中都是同一个对象。

容器中只有一个A的实例,B和C都将引用同一个A对象。

原型

如果想要每次注入都创建一个新的 A 实例,可以考虑将 A 的作用域设置为原型(Prototype),这可以通过在@Component 注解中使用 @Scope("prototype") 来实现。这样每次注入A时都会创建一个新的A对象,而不是共享同一个对象。

@Component
@Scope("prototype")
public class A {
    // ...
}