我是使用Spring-Framework的新手,我实际上使用的是spring-boot库 . 我有以下问题:
我知道在@Configuration类中使用@Bean注册的bean默认是单例,但是我发现依赖于其他bean的bean正在获取这些bean的实例,而不是我希望它们拥有的单例实例 .
例如:
@Bean
public static void myFirstService() {
return new MyFirstService(foo(), bar());
}
@Bean
public static void mySecondService() {
return new MySecondService(foo(), bar());
}
@Bean
public static void foo() {
return new Foo();
}
@Bean
public static void bar() {
return new Bar();
}
我希望MyFirstService和MySecondService的实例具有相同的foo和bar实例 . 这是默认应该发生的事情,对吧?或者我是否完全误解了 beans 类的处理方式?
我玩过@Scope注释(无济于事),但这是我的理解,我不应该这样做 .
提前感谢任何输入! :)
2 回答
我刚发布这个,我意识到了这个问题......(总是这样......)
我想出了答案 . 以防其他人犯同样的错误 . 我的IDE将方法更正为“静态”,当然它们不应该是 .
我已将这些方法更改为实例方法,并且一切都按预期工作 .
你应该在这里使用@Autowired如下:
在MyFirstService和MySecondService的java类代码中,自动连接foo和bar .