springBoot(cloud)读取配置文件的先后顺序

springBoot读取配置文件的先后顺序

     1.在命令行传入的参数

     2.spring_application_json中的属性。spring_application_json是以json格式配置在系统环境变量中的内容。

     3.java:comp/env中的JNDI属性。

     4.java的系统属性,可以通过System.getProperties()获得的内容。

     5.操作系统的环境变量。

     6.通过random.*配置的随机属性。

     7.位于当前应用ar包之外,正对不同{profile}环境的配置文件内容,例如application-{profile}.properties或者yaml定义的配置文件。

     8.位于当前应用jar包之内,针对不同{perofile}环境的配置文件内容,例如application-{profile}。properties或者是yaml定义的文件。

     9.位于当前应用jar包之外的application-properties和yaml配置的文件。

     10.位于当前应用jar包之内的application-properties和yaml配置的文件。

     11.在@Configuration注解修改的类中,通过@PropertySource注解定义的属性。

扫描二维码关注公众号,回复: 10243680 查看本文章

     12.应用默认属性,使用SpringApplication.setDefaultProperties定义的内容。

优先级按上面的顺序由由低到高,数字越小优先级越大

可以看到,其中第7项和第9项都是从应用jar包之外读取配置文件,所以,实现外部化配置的原理就是从此切入,为其指定外部配置文件的加载位置来取代jar包之内的配置容器。通过这样的实现,我们的工程在配置中就变得非常干净,只需要在本地放置开发需要的配置即可,而不用关心其他环境的配置,尤其对应环境的负责人去维护即可。

发布了41 篇原创文章 · 获赞 79 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_33220089/article/details/100122785