clash自动更新间隔

clash自动更新间隔

抽象,它统一 Spring 配置属性的存储,包括占位符处理和类型转换,不仅完整地替换

StandardServletEnvironment是整个spring boot应用运行环境的实现类,后面所有的关于环境相关的配置操作都是基于这个类,它的类的结构图如下:

这里要明确一点,就是添加PropertySource的目的其实就是要告诉Environment,解析哪些位置的属性文件进行加载clash自动更新间隔。而在这个添加过程中,所有的添加都是基于addLast,也就是最早添加的PropertySource会放在最前面。systemEnvironment是在systemProperties前面,这点很重要。因为前面的配置会覆盖后面的配置,也就是说系统变量中的配置比系统环境变量中的配置优先级更高。

在上面的代码中可以看到,所有的外部资源配置都是添加到了一个MutablePropertySources对象中,这个对象封装了属性资源的集合。而从MutablePropertySources命名来说,Mutable是一个可变的意思,也就是意味着它动态的管理了PropertySource的集合。

到目前为止,还是在初始化外部化配置的数据来源。接着进入configureProfiles方法,这个方法就比较容易理解,就是配置当前激活的profiles,将当前的activeProfiles设置到enviroment中。这样就能够使得我们完成不同环境下配置的获取问题。

这块的代码就不继续深入分析了,有点绕,感兴趣的小伙伴深入去看看。load 所做的事情如下:

至此,springBoot中的资源文件加载完毕clash怎么设置配置,,解析顺序从上到下,所以前面的配置文件会覆盖后面的配置文件。可以看到 application.properties 的优先级最低,系统变量和环境变量的优先级相对较高。

以上的扩展可以选取其中一种进行扩展,只是属性源的加载时机不太一样,越早越好。

掌握了springboot外部化配置的实现原理clash怎么设置配置,为以后学习和理解spring cloud环境下clash配置的url怎么弄,加载远程配置中心的配置原理,打下良好的基础。

THE END
喜欢就支持一下吧
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称