【发布时间】:2020-05-06 21:26:06
【问题描述】:
我们在我们的项目中使用了 Spring,今天我发现,在我看来,这是一个奇怪的行为。在我看来,依赖注入和注释@DependsOn 在以下两种情况下应该是相同的
@Bean
public ClassA classA(){
//code
}
@Bean
public ClassB classB(ClassA classA){
someMethodWhichNeedsClassA()
}
和
@Bean
public ClassA classA(){
//code
}
@Bean
@DependsOn("classA")
public ClassB classB(){
someMethodWhichNeedsClassA()
}
看来,这两种方式并不相同。我不允许共享我的代码,但在第一种情况下,我可以访问一个列表,该列表填充了第一个 Bean,但在第二种情况下则不能。 我试图在文档或其他博客中找到一些东西,但没有成功。
有人知道这两种方式之间是否有任何区别,因为我认为这与 bean 创建的顺序有关,仅此而已。
感谢您的帮助
【问题讨论】:
-
方法someMethodWhichNeedsClassA()中的needs是什么意思?你的意思是这个方法调用classA吗?或者你的意思是它只需要 bean classA 的初始化结果?
标签: java spring spring-boot dependency-injection dependencies