遇到问题的场景:
在学习多数据源配置时,不懂@ConfigurationProperties作用在方法上的具体原理,故在此记录。产生疑问的部分代码如下:
@Bean("master")
@Primary
@ConfigurationProperties(prefix = "application.server.db.master")
public DataSource master() {
return DataSourceBuilder.create().build();
}
问题描述:
如图:
问题解读:
- 上图@ConfigurationProperties+@Bean式配置法属于隐式绑定(配置文件编写的时候需要与对应类的字段名称相同),application.properties中,driver-class-name、url、port、username、password等名称与下图 DataSourceBuilder类中与配置相关的属性名称一致。运行期间可将配置文件中的值赋值入DataSourceBuilder,进而生成指定数据源。
2. @ConfigurationProperties需要和@Configuration配合使用。