我有一个运行的Spring服务器,到目前为止我没有通过现场注入自动装配我的Beans的问题 . 由于某些原因,这在某些情况下不起作用 . 我想实现我的DatabaseConfiguration在Database类中自动装配 . DatabaseConfiguration是从应用程序属性加载的
@Component
@ConfigurationProperties(prefix = "databaseConfiguration")
注释 . 它在我的BeanConfig中成功加载,我已经自动装配了这个类 . 现在我有一个数据库的bean定义,如下所示:
@Bean
public Database getDatabase() {
return new Database();
}
在Database类中,有一个Configuration的字段定义,如下所示:
@Autowired
DatabaseConfiguration config;
当调用getDatabase()函数时,我验证了DatabaseConfiguration在BeanConfig类中获得了正确的自动装配,但由于某种原因,它在创建的数据库实例中为null .
Database类位于project.databases包中,DatabaseConiguration和BeanConfiguration位于project.config包中 .
我的主应用程序位于项目包中,并使用这些注释进行注释
@EnableScheduling
@ComponentScan
@EnableAutoConfiguration(exclude = { MongoAutoConfiguration.class, MongoDataAutoConfiguration.class })
有没有人知道为什么自动装配在这里不起作用?
1 回答
您手动创建数据库 -
return new Database();
. Spring没有机会自动装配任何东西 .您应该让Spring创建bean或手动分配配置 .