spring boot
配置属性的方式很多,Spring boot使用了一种独有的 PropertySource 可以很方便的覆盖属性的值。
配置属性加载的顺序如下:
- 开发者工具
Devtools
全局配置参数,例如eclipse配置的参数; - 单元测试上的
@TestPropertySource
注解指定的参数; - 单元测试上的
@SpringBootTest
注解指定的参数; - 命令行指定的参数,如
java -jar springboot.jar --name="Javaxxx"
; - 命令行中的
SPRING_APPLICATION_JSONJSON
指定参数, 如java -Dspring.application.json='{"name":"Javaxxx"}' -jar springboot.jar
ServletConfig
初始化参数;ServletContext
初始化参数;- JNDI参数(如
java:comp/env/spring.application.json
); - Java系统参数(来源:
System.getProperties()
),java源码包级的配置; - 操作系统环境变量参数;
RandomValuePropertySource
随机数,仅匹配:ramdom.*
;- JAR包外面的配置文件参数(
application-{profile}.properties(YAML)
),类子目录下的; - JAR包里面的配置文件参数(
application-{profile}.properties(YAML)
),类根目录下的; - JAR包外面的配置文件参数(
application.properties(YAML)
),src子目录下的; - JAR包里面的配置文件参数(
application.properties(YAML)
),src根目录下的; @Configuration
配置文件上@PropertySource
注解加载的参数,java代码的配置文件;- 默认参数(通过
SpringApplication.setDefaultProperties
指定),启动时手动设置;