Jan*_*ski 9 java spring dependency-injection
为什么这样做:
@Configuration
public class MyConfig {
@Bean
public A getA() {
return new A();
}
@Bean <-- Shouldn't I need @Autowired here?
public B getB(A a) {
return new B(a);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Joh*_*ohn 13
@Autowire允许您将bean从上下文注入"外部世界",其中外部世界是您的应用程序.由于@Configuration类在"上下文世界"中,因此无需显式自动装配(从上下文中查找bean).
想象一下从给定实例访问方法时的类比.当您在实例范围内时,无需编写this访问实例方法,但外部世界必须使用实例引用.
编辑
编写@Configuration类时,您将为IOC创建的bean指定元数据.
@Autowire另一方面,注释允许您在应用程序中注入初始化的 bean而不是元数据.所以,没有必要进行显式注入,因为你在Configuration课堂上没有使用Beans .
嗨,简,你的问题在 4 年前被标记为已回答,但我找到了更好的来源:https : //www.logicbig.com/tutorials/spring-framework/spring-core/javaconfig-methods-inter-dependency.html
这是另一篇具有相同想法的文章:https : //dzone.com/articles/spring-configuration-and,它还指出这种用法没有得到很好的记录,我发现这是真的。(?)
所以基本上如果beanA的初始化依赖于beanB,@Autowired只要你在应用程序上下文(即@Configuartion类)中声明这两个 bean ,spring 就会在没有显式注释的情况下连接它们。
| 归档时间: |
|
| 查看次数: |
6086 次 |
| 最近记录: |