一尘不染

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

spring

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

例如:

@Configuration
public class SpringConfiguration{

   @Autowired 
   DataSource datasource;

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

   // ...

}

显然,不能直接实例化DataSource接口,但是为了简化起见,我在这里直接实例化它。当前,当我尝试上述操作时,数据源对象仍然为null,并且Spring不会对其自动接线。

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

所以我的问题特别是:是否有办法针对a DataSource?或更笼统地说,在Spring Java Configuration中自动装配bean的方法是什么?

我应该注意我正在使用Spring 3.2版。


阅读 340

收藏
2020-04-18

共1个答案

一尘不染

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

@Bean
public OtherBean someOtherBean() {
    return new OtherBean(dataSource());
}

或将其自动连接到@Bean方法中

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

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

2020-04-18