【发布时间】:2020-02-05 13:59:26
【问题描述】:
Bean 创建应该是 Spring 容器中的 Singleton,对吗?我正在使用注释将 Spring 配置文件迁移到 Spring Boot。我有下面的代码,但似乎每次在另一个 bean 创建中使用它时都会调用“mySingletonBean()”。我的理解是 @Bean 注释默认应该是 Singleton 。我是否正确地创建了我的 Bean?
@Bean
public SomeBean mySingletonBean() {
SomeBean mybean = new SomeBean();
mybean.setName = "Name";
return mybean;
}
@Bean
public Bean1 bean1() {
Bean1 bean1 = new Bean1();
bean1.setBean(mySingletonBean());
return bean1;
}
@Bean
public Bean2 bean2() {
Bean2 bean2 = new Bean2();
bean2.setBean(mySingletonBean());
return bean2;
}
【问题讨论】:
-
方法调用将被代理到
@Configuration。类并导致相同的实例。但是,这仅适用于@Configuration类而不是 `@Component 类。 -
我对你的问题有点困惑。您是否观察到创建了两个不同的
SomeBean实例,或者您是否担心调用该方法可能/将导致重复 bean 创建?
标签: java spring spring-boot ioc-container