配置文件
spring-boot:2.7.2
启动读取参数
1)命令行参数。所有的配置都可以在命令行上进行指定;
2)来自java:comp/env的JNDI属性;
3)Java系统属性(System.getProperties());
4)操作系统环境变量 ;
org.springframework.boot.context.config.ConfigDataEnvironment
实例化时,添加了默认搜索地址
倒序加入列表中,所以是先加载:
jar包外部: optional:file:./;optional:file:./config/;optional:file:./config/*/
再加载:
jar包内部: optional:classpath:/;optional:classpath:/config/
点击查看:spring boot 加载配置文件
yaml,yml,properties,json,xml
1)jar包外部的 bootstrap配置文件
2)jar包内部的 bootstrap配置文件
3)jar包外部的 bootstrap-{profile}配置文件
4)jar包外部的 bootstrap-{profile}配置文件
5)jar包外部的application配置文件
6)jar包内部的application配置文件
7)jar包外部的application-{profile}配置文件
8)jar包内部的application-{profile}配置文件
9)远程配置{application.name}配置文件(profile+后缀,后缀,无后缀)
使用中读取参数
在使用中则会重新排序,决定使用的优先级,默认的优先级为:
参数:
1)端口号,启动后不会再更改
2)远程配置中心{application.name}({profile}+后缀,后缀,不带后缀)
3)远程配置中心的公共配置
4)应用参数(java应用相关的参数),参考第8个;
5)操作系统环境变量,操作系统相关的参数;
6)random随机数;
7)springCloudClientHostInfo,包含hsotname和ip;
8)application配置文件(1.先file再classpath;2.先config,再相对根目录;3.先带{profile},后不带{profile};4.properties,yml,yaml);
9)bootstrap配置文件(1.先file再classpath;2.先config,再相对根目录;3.先带{profile},后不带{profile};4.properties,yml,yaml);
10)springCloudDefaultProperties 默认的配置;
怎么设置配置优先级,可以点击 spring cloud 本地配置优先