最近项目中实现读写分离时有用到@ConfigurationProperties注解,通过不同的前缀来配置不同的数据源信息
如果没有使用过springboot的可能对这个注解不太熟悉,下面简单的对这个注解做个解析:
@ConfigurationProperties注解可以注入在application.properties配置文件中的属性,和@Bean 或者 @Component 能生成spring bean 的注解结合起来使用
该类的加载过程中,会调用AbstractAutowireCapableBeanFactory中的applyBeanPostProcessorsBeforeInitialization接口
触发ConfigurationPropertiesBindingPostProcessor调用postProcessBeforeInitialization;
后面就是一些属性的解析和绑定过程了,看源码确实比较耗费时间,自己debug翻一下源码确实能对整个的解析过程有更深刻的了解。