1、多环境配置
在 Spring Boot中,多环境配置的文件名需要满足 application-{profile}.properties
的格式, 其中{profile}对应你的环境标识, 如下所示。
application-dev.properties
: 开发环境。application-test.properties
: 测试环境。application-prod.properties
: 生产环境。
至于具体哪个配置文件会被加载, 需要在 application.properties
文件中通过 spring.profiles.active 属性来设置,其 值 对应配置文件中的{profile}值。 如 spring.profiles.active= test就会加载 application-test.properties
配置 文件内容,当在application-{profile}.properties
和application.properties
配置了相同的配置,会优先加载application-{profile}.properties
。
2、加载顺序
为了能够更合理地重写各属性的值,SpringBoot使用了下面这种较为特别的属性加载顺序:
在命令行中传入的参数。
SPRING_APPLICATION_JSON中的属性。 SPRING_APPLICATION_JSON是以JSON格式配置在系统 环境变量中的内容。
java:comp/env中的JNDI 属性。
java的系统属性, 可以通过System.getProperties()获得的内容。
操作系统的环境变量 。
通过random.* 配置的随机属性。
位于当前应用 jar 包之外,针对不同{profile}环境的配置文件内容,例如
application-{profile}.properties
或是YAML定义的配置文件。位于当前应用 jar 包之内,针对不同{profile}环境的配置文件内容,例如
application-{profile}.properties
或是YAML定义的配置文件。位于当前应用jar包之外的
application.properties
和YAML配置内容。位于当前应用jar包之内的
application.properties
和YAML配置内容。在@Configuration注解修改的类中,通过@PropertySource注解定义的属性。
应用默认属性,使用SpringApplication.setDefaultProperties 定义的内容。
优先级按上面的顺序由上到下。