最近在修复Eureka的静态页面加载不出嘚缺陷时最终发现是远程GIT仓库将静态资源访问方式配置给禁用了(spring.resources.add-mappings=false)。虽然最后直接修改远程GIT仓库的此配置项给解决了(spring.resources.add-mappings=true)但是从中牵涉出的配置读取优先级我们必须好好的再回顾下
当然上述的API地址也是需要被访问服务器部署了config server服务方可调用,具体的细节就不展开了
外部源读取优先级 我们都知道spring的配置属性管理均是存放在Enviroment对象中,就以普通项目StandardEnvironment为例其配置的存放顺序可罗列如下
对上述的代码描述作下总结
2.针對相应的属性的值对应的外部源在Environment对象中的读取优先级,罗列如下
即默认情况下外部源的配置属性的读取优先级是最高的。且除了spring.cloud.config.override-none=true的情況下其他情况下外部源的读取优先级均比本地config配置文件件高。
自定义PropertySourceLocator接口 针对上文描述假设有这么一个场景,远程仓库的配置都是公囿的我们也不能修改它,我们只在项目中去复写相应的配置以达到兼容的目的那么用户就需要自定义去编写接口了1.编写PropertySourceLocator接口实现类
小結 默认情况下,外部源配置拥有最高的优先级在spring.cloud.config.override-none=false的情况下,外部源配置也比本地文件拥有更高的优先级
获取更多学习资料,可以加群:或扫描下方二维码