我是使用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实例。这是默认应该发生的事情,对吧?或者我是否完全误解了豆类的处理方式?
我玩@Scope注释(无济于事),但这是我的理解,我不应该这样做。
提前感谢任何输入! :)
答案 0 :(得分:3)
我刚刚发布这个,我意识到了问题......(总是那样......)
我想出了答案。以防其他人犯同样的错误。我的IDE将方法更正为"静态",当然它们不应该是。
我已将这些方法更改为实例方法,一切都按预期工作。
答案 1 :(得分:1)
你应该在这里使用@Autowired如下:
@Autowired
private MyFirstService myFirstService;
@Autowired
private MySecondService mySecondService;
在MyFirstService和MySecondService的java类代码中,自动连接foo和bar。