一、基本使用
- 创建配置对象
对象上标注@ConfigurationProperties注解
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties implements
BeanClassLoaderAware, InitializingBean {
private String driverClassName;
/**
* JDBC URL of the database.
*/
private String url;
/**
* Login username of the database.
*/
private String username;
/**
* Login password of the database.
*/
private String password;
}
- 使用配置对象
- 标注@EnableConfigurationProperties(配置对象类.class)
- 一般用在@Configuration标注的类上
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(DataSourceProperties.class)
public class EmbeddedDataSourceConfiguration implements BeanClassLoaderAware {
@Bean(destroyMethod = "shutdown")
public EmbeddedDatabase dataSource(DataSourceProperties properties) {
return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseConnection.get(this.classLoader).getType())
.setName(properties.determineDatabaseName()).build();
}
}
二、关键对象
- ConfigurationPropertiesBindingPostProcessor:实现了BeanPostProcessor
拦截@ConfigurationProperties标注bean的创建过程,注入值。 - EnableConfigurationPropertiesRegistrar:将ConfigurationPropertiesBindingPostProcessor放入容器;将value属性值(标注@ConfigurationProperties的bean class)放入容器
三、实现流程
- ConfigurationPropertiesBindingPostProcessor类被加载和解析
- 拦截@ConfigurationProperties标注bean的创建过程,注入值
文章来源地址https://www.toymoban.com/news/detail-445684.html
文章来源:https://www.toymoban.com/news/detail-445684.html
到了这里,关于@ConfigurationProperties 实现流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!