springboot的外部配置文件
springboot配置文件生效优先级
·
springboot外部属性加载文档
配置文件*.properties或*.yaml生效的优先级
-profile.properties>-profile.yaml>.properties>.yaml,profile如果未指明,默认为default- 第一种:当前目录,即jar包的当前目录
.- 子目录的叫做
config的直接子目录,比如,当前目录下./child222/config - 当前目录中的叫
config的子目录,./config - jar包当前目录
.
- 子目录的叫做
- 第二种:类路径
classpath,即jar包中的BOOT-INF/classes/- 类路径下的名称为
config的包 - 类路径根
- 类路径下的名称为
注意:
这里说的jar包的当前目录如果要生效,指的是,执行命令java -jar xxxx.jar ...必须在jar包目录下执行,否则将加载不了第一个jar包的当前目录.下的配置。
以下是机翻文档,可以不用看了,看前面结论就行
springboot加载配置文件顺序
springboot配置文件有 application.properties,application.yaml两种,
加载配置文件*.properties或*.yaml的顺序为:
- 从类路径
classpath,即jar包中的BOOT-INF/classes/- 类路径根
- 类路径下的包
/config
- 从当前目录,即jar包的
./- 当前目录
- 当前目录中的子目录
/config - 子目录的直接子目录
/config
诶,顺序是不是反了?
不是,文件加载顺序是这样,但是,后加载的配置文件的属性将会覆盖前面加载值,所以配置生效的优先级是和加载优先级相反。
设置配置文件属性
修改配置文件的默认加载名称
即修改spring.config.name
java -jar myproject.jar --spring.config.name=myproject
修改配置文件加载位置
即修改spring.config.location
java -jar myproject.jar --spring.config.location=\
optional:classpath:/default.properties,\
optional:classpath:/override.properties
# 其中optional代表后面的文件可有可无。非必须
以下属性加载顺序:排在后面的会覆盖前面的属性。
- 默认属性(通过设置指定)。
SpringApplication.setDefaultProperties @PropertySource类上的注释。请注意,在刷新应用程序上下文之前,不会将此类属性源添加到 中。配置某些属性(如 和)在刷新开始之前读取这些属性为时已晚。@Configuration``Environment``logging.*``spring.main.*- 配置数据(如文件)。
application.properties - 仅在 中具有属性的 A
RandomValuePropertySource``random.* - 操作系统环境变量。
- Java 系统属性 ()。
System.getProperties() - 中的 JNDI 属性。
java:comp/env ServletContext初始化参数。ServletConfig初始化参数。- 属性来自(嵌入在环境变量或系统属性中的内联 JSON)。
SPRING_APPLICATION_JSON - 命令行参数。
properties属性。在@SpringBootTest和测试批注上可用,用于测试应用程序的特定切片。@TestPropertySource测试的注释。- Devtools 全局设置属性在 devtools 处于活动状态时在目录中。
$HOME/.config/spring-boot
配置数据文件按以下顺序:排在后面的会覆盖前面的属性。
- 打包在 jar 中的应用程序属性(和 YAML 变体)。
application.properties - 特定于配置文件的应用程序属性打包在 jar 中(和 YAML 变体)。
application-{profile}.properties - 打包 jar(和 YAML 变体)之外的应用程序属性。
application.properties - 打包 jar(和 YAML 变体)之外的特定于配置文件的应用程序属性。
application-{profile}.properties
这里的{profile},如果没有指定,就是default
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)