正如M.
Deinum所说的
@EnableConfigurationProperties是为了支持
@ConfigurationProperties。如果查看批注Java
Doc,您将看到:
启用对带有ConfigurationProperty注释的Bean的支持。可以以标准方式(例如,使用Bean
@Bean方法)注册ConfigurationProperties Bean,或者为了方便起见,可以在此批注上直接指定。[…]
例如,假设您有一个类,该类的职责是从
application.yml/
application.properties中读取和存储与不同数据库建立连接所需的信息。您用添加注释
@ConfigurationProperties。
然后,通常会有一个带
@Configuration注释的类
DataSource
@Bean为您的应用程序提供一个。您可以使用将
@EnableConfigurationProperties其链接到
@ConfigurationProperties该类并相应地初始化您的数据源。
这是一个小例子:
application.yml
data-sources: db1: url: "jdbc:postgresql://localhost:5432}/db1" username: test password: test db2: url: "jdbc:postgresql://localhost:5432}/db2" username: test password: test
数据源配置
@ConfigurationPropertiespublic class DataSourcesConfiguration { private Map<String, BasicDataSource> dataSources; public void setDataSources(Map<String, BasicDataSource> dataSources) { this.dataSources = dataSources; } Map<String, BasicDataSource > getDataSources() { return dataSources; }}DataSourceConnectionConfiguration
@Configuration@EnableConfigurationProperties(DataSourcesConfiguration.class)public class DatabaseConnectionConfiguration implements Provider<Connection> { private DataSourcesConfiguration dataSourcesConfiguration; public DatabaseConnectionConfiguration(DataSourcesConfiguration dataSourcesConfiguration) { this.dataSourcesConfiguration = dataSourcesConfiguration; } @Bean public DataSource dataSource() { // Use dataSourcesConfiguration to create application data source. E.g., a AbstractRoutingDataSource.. }}


