spring 配置模型
2023-12-19 02:46:18
一、引言
? ? ? ? 本文将会介绍spring的配置模型、配置初始化和动态刷新。
二、技术细节
1、配置模型
Environment ->
Profile -> active / default
MutablePropertySources -> PropertySourcer -> servlet,system,spring
PropertyResolver -> PropertyConvension
MutablePropertySourcer->? ?多源、List<PropertySource<?>> propertySourceList;
? ? ? ? PropertySourcer -> 配置源
? ? ? ? ConversionService -> 配置转换器
2、初始化配置优先级
1.命令行参数
java -jar xxx.jar -Da=b
2.Java系统属性
3.操作系统环境变量
tips: 如果使用远程的配置中心,可以在 spring boot PropertySourcer前加入自己的Sourcer
4.spring boot 配置文件
application.yml / application.properties
3、spring 配置动态刷新
? ? ? ? Environment中的PropertySourcer是无法更改的,
? ? ? ? 要实现动态更新目前有2种方式
? ? ? ? ? ? ? ? ? ?
一. 绕过environment,environment只在配置初始化做全量。
a.收集@Value对应的字段,维护key与字段(Field,target)关系,
可以通过BeanPostProcessor实现
b.捕捉配置变更,发送spring event,listener通过反射修改对应的字段
? c.提供一个工具类,直接获取配置,如ApolloConfigUtil
二、修改并替换掉PropertySourcer对象
a.通过Environment 获取对应的PropertySourcer对象,并更新对应的字段值。
文章来源:https://blog.csdn.net/qq_37011724/article/details/135069020
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!