为什么这样做:
@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);
}
}
谢谢!
最佳答案
@Autowire
允许您将 bean 从上下文注入(inject)到“外部世界”,外部世界就是您的应用程序。
由于使用 @Configuration
类,您处于“上下文世界”中,因此无需显式 Autowiring (从上下文查找 bean)。
类比是从给定实例访问方法。当您在实例范围内时,无需编写 this
来访问实例方法,但外部世界必须使用实例引用。
编辑
当您编写@Configuration
类时,您正在为将由IOC 创建的bean 指定元数据。
@Autowire
注释允许您在应用程序中注入(inject)初始化 bean,而不是元数据。因此,不需要显式注入(inject),因为在 Configuration
类中您没有使用 Beans。
关于java - 为什么在 Spring 配置类中的 @Bean 方法上不需要 @Autowired?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32078600/