SpringBoot配置文件的加载顺序
1、项目内配置文件的加载顺序
Spring Boot 启动会扫描以下位置的application.properties或者application.yml 文件作为Spring Boot 的默认配置文件。
路径 | 描述 | 优先级 |
---|---|---|
file:…/config/ | 项目根目录config文件夹下 | 优先级最高 |
file:…/ | 项目根目录下 | 优先级第二 |
classpath:/config | resources目录中config文件夹下 | 优先级第三 |
classpath:/ | resources目录下 | 优先级最低 |
以上是按照 优先级从高到低 的顺序 ,所有位置的文件都会被加载(互补配置),高优先级配置内容会覆盖低优先级配置内容。
也可以通过spring.config.location来改变默认配置
示例:
java -jar config-test.jar --spring.config.location=C:/application.properties
2、外部配置文件的加载顺序
Spring Boot 也可以从以下位置加载配置:
(优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置)
- 命令行参数
可以在命令行使用命令行参数修改配置文件的信息(多个参数可以用空格隔开 —配置项=值 ),例如修改端口为8081
java -jar config-test.jar --server.port=8081
- 来自java:comp/env的NDI属性
- java系统属性 ( System.getProperties() )
- 操作系统环境变量
- RandomValuePropertySource配置的randm.*属性值
- jar包 外部 / 内部 的application-{profile}.properties或application.yml(带spring.profile)配置文件(由Jar包外向Jar包内进行寻找)
- 优先加载带profile
- jar包 外部 / 内部 的application.properties 或 application.yml (带spring.profile)配置文件(由Jar包外向Jar包内进行寻找)
- 加载完带profile后再加载不带profile
- @Configuration注解类上的@PropertySource
- 通过SpringApplication.setDefaultProperties指定的默认属性
- 所有支持的配置加载来源:参考官方文档
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204336.html