在Spring的Java配置中自动装配bean

Ava*_*nst 22 java spring

是否可以在用@AutowiredJava编写的Spring配置中使用Spring的注释?

例如:

@Configuration
public class SpringConfiguration{

   @Autowired 
   DataSource datasource;

   @Bean
   public DataSource dataSource(){
       return new dataSource();
   }

   // ...

}
Run Code Online (Sandbox Code Playgroud)

显然,DataSource接口不能直接实例化,但我在这里直接实例化它是为了简化.目前,当我尝试上述操作时,数据源对象保持为null并且不由Spring自动装配.

我通过返回一个@AutowiredHibernate SessionFactory对象成功地工作了FactoryBean<SessionFactory>.

所以我的具体问题是:有没有办法做到这一点DataSource?或者更一般地说,在Spring Java配置中自动装配bean的方法是什么?

我应该注意到我使用的是Spring 3.2版.

Sot*_*lis 34

如果需要DataSource在同一@Configuration文件中引用bean,只需调用bean方法即可.

@Bean
public OtherBean someOtherBean() {
    return new OtherBean(dataSource());
}
Run Code Online (Sandbox Code Playgroud)

或者将它自动装入@Bean方法中

@Bean
public OtherBean someOtherBean(DataSource dataSource) {
    return new OtherBean(dataSource);
}
Run Code Online (Sandbox Code Playgroud)

一个@Configuration类的生命周期有时会像你建议的那样阻止自动装配.