Spring Autowired在BeanConfig中不起作用

时间:2017-09-06 07:53:41

标签: spring autowired

我有一台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 })

有没有人知道为什么自动装配在这里不起作用?

1 个答案:

答案 0 :(得分:0)

您手动创建数据库 - return new Database();。 Spring没有机会自动装配任何东西。

你应该让Spring创建bean或手动分配配置。