美文网首页
Spring Boot 外部化配置简介

Spring Boot 外部化配置简介

作者: 尚水杨 | 来源:发表于2020-08-05 10:59 被阅读0次

外部化配置简介(Externalized Configuration)

Spring Boot提供properties文件、YAML文件、环境变量(environment variables)和命令行参数的方式进行外部化配置,可以在不同的环境,使用不同的配置信息。
应用可以通过@Value注入到bean,也可以通过@ConfigurationProperties进行对象的绑定配置。

配置的优化级

  1. Devtools的全局配置目录$HOME/.config/spring-boot
  2. 在测试目录的@TestPropertySource注解
  3. 在测试目录中的properties属性
  4. 命令行参数(--key=value参数形式)
  5. SPRING_APPLICATION_JSON(环境变量或者系统属性传入)
  6. ServletConfig初始化参数
  7. ServletContext初始化参数
  8. JNDI 属性(java:com/env)
  9. Java系统属性(System.getProperties() ,-Dkey=value形式)
  10. 操作系统环境变量
  11. RandomValuePropertySource(random.*的属性)
  12. jar包外的指定profile的属性(application-{profile}.properties and YAML)
  13. jar包内的指定profile的属性(application-{profile}.properties and YAML)
  14. jar包外的应用属性(application.properties and YAML)
  15. jar包内的应用属性(application.properties and YAML)
  16. 在@Configuration类中配置的@PropertySource属性(上下文件refresh后有效,有些组件需要refresh前使用的这个不会生效)
  17. 默认属性(pringApplication.setDefaultProperties指定)

配置文件路径

Spring Boot提供的默认通配符路径(wildcard location)在jar包路径的config/*/目录下。
可以通过指定spring.config.additional-location和spring.config.location来修改

SPRING_APPLICATION_JSON的配置

环境变更

#linux下
 SPRING_APPLICATION_JSON='{"name":"test"}' java -jar myapp.jar
#window下
环境变更配置
SPRING_APPLICATION_JSON={"name":"test"}
 java -jar myapp.jar

系统属性

#linux
java -Dspring.application.json='{"name":"test"}' -jar myapp.jar
#windows
java -Dspring.application.json="{\"name\":\"test\"}" -jar myapp.jar

命令行参数

#linux
java -jar myapp.jar --spring.application.json='{"name":"test"}'
#window
java -jar myapp.jar --spring.application.json="{\"name\":\"test\"}"

相关文章

网友评论

      本文标题:Spring Boot 外部化配置简介

      本文链接:https://www.haomeiwen.com/subject/zojnrktx.html