《Spring Cloud微服务架构进阶》——3.3.2 外部化配置
【摘要】 本书摘自《Spring Cloud微服务架构进阶》——书中的第3章,第3.3.2节作者是朱荣鑫、张天、黄迪璇。
3.3.2 外部化配置
Spring Boot所提供的配置优先级顺序比较复杂。按照优先级从高到低的顺序,具体的列表如下所示:
1)命令行参数。SpringApplication类默认会把命令行参数转化成应用中可以使用的配置参数。
2)通过System#getProperties方法获取的Java系统参数。
3)操作系统环境变量。使用Docker启动时,经常会设置系统变量。
4)从java:comp/env得到的JNDI属性。
5)通过RandomValuePropertySource生成的random.*属性。
6)应用jar文件之外的属性文件,如通过spring.config.location参数指定的属性文件。
7)应用jar文件内部的属性文件,这是常用的方式。
8)在应用配置Java类(包含@Configuration注解的Java类)中通过@PropertySource注解声明的属性文件。
9)通过SpringApplication#setDefaultProperties方法声明的默认属性。
有些系统会涉及一些数据库或其他第三方账户等信息,出于安全考虑,这些信息并不会提前配置在项目中。对于这种情况,可以在运行程序的时候通过参数指定一个外部配置文件的方式来解决。
以demo.jar为例,方法如下:
java -jar demo.jar --spring.config.location=/opt/config/application.properties
这里指定的外部文件名无固定要求,如果需要通过bash脚本来加载不同环境的外部配置文件,文件的命名可以参考application-{env}.properties。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)