Spring JavaConfig和基于注释的注入

时间:2014-07-11 19:54:14

标签: spring dependency-injection spring-annotations spring-java-config

我已将Spring应用程序配置如下:

Class A{

  @Resource
  private B objB;
  @Resource
  private C objC;

}

Class B{}
Class C{}

@Configuration
Class SpringConfigs{
  @Bean
  public A objA(){
      return new A();
  }

  @Bean
  public B objB(){
      return new B();
  }

  @Bean
  public C objC(){
      return new C();
  }
}

我使用组件扫描来选择@Configurations。我的问题是Spring会为B&注入Beans在为A创建bean时使用C.我在A类中使用@Resource但是使用new运算符来创建Bean,那么Spring会识别A类中的注释并注入它们吗?感谢。

1 个答案:

答案 0 :(得分:0)

你的应用程序运行得很好。你试过吗?

当通过类路径扫描获取SpringConfigs配置类时,将处理@Bean带注释的方法以创建相关的bean。

你可能指的是一个常见的初学者错误,包括手工创建bean并期望Spring意识到必须做某事(例如连接依赖关系或创建代理以提供其他功能)。

您确实是自己创建bean,但是您正在BeanFactory将调用检索 bean实例的方法中执行此操作。将实例添加到工厂后,它将像任何其他bean一样进行后处理(例如通过xml配置创建的那些)