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指定),启动时手动设置;
