我有一台Spring Server正在运行,到目前为止我没有通过现场注入自动装配我的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 })
有没有人知道为什么自动装配在这里不起作用?
答案 0 :(得分:0)
您手动创建数据库 - return new Database();
。 Spring没有机会自动装配任何东西。
你应该让Spring创建bean或手动分配配置。