springboot根据环境装配配置文件、启动加载外置配置文件
目錄
一、profile功能
1.簡介
2.application-profile功能
3.profile條件裝配
4.profile分組
二、外部化配置
1.官方文檔
2.獲取系統的環境變量、屬性(擴展)
3.外部配置源
4.配置文件(application.yaml)查找位置
5.配置文件加載順序
一、profile功能
1.簡介
為了方便多環境適配,springboot簡化了profile功能。
2.application-profile功能
(1)注意事項
① 默認配置文件 application.yaml;任何時候都會加載
② 指定環境配置文件 application-{env}.yaml
③ 默認配置與環境配置同時生效,同名配置項,環境配置文件(application-{env}.yaml)優先
④ 修改配置文件的任意值,命令行優先
(2)激活方式
① 配置文件激活
application.yaml 中加入配置,即可以激活指定的配置文件application-{env}.yaml
spring:profiles:active: test # 指定激活的環境② 命令行激活
# 修改激活的環境 java -jar cxf-1.0-SNAPSHOT.jar --spring.profiles.active=prod # 修改默認的配置,命令行優先 java -jar cxf-1.0-SNAPSHOT.jar --spring.profiles.active=prod --server.port=80883.profile條件裝配
// 可以注釋方法、類,根據環境來裝配 @Configuration(proxyBeanMethods = false) @Profile("production") public class ProductionConfiguration {// ... } @Configuration public class MyConfig {@Profile("prod")@Beanpublic Color red(){return new Color();}@Profile("test")@Beanpublic Color green(){return new Color();} } @Profile("test") @Component @ConfigurationProperties("person") @Data public class Worker implements Person {private String name;private Integer age; }@Profile(value = {"prod","default"}) @Component @ConfigurationProperties("person") @Data public class Boss implements Person {private String name;private Integer age; }public interface Person {String getName();Integer getAge(); }4.profile分組
spring.profiles.group.production[0]=uat spring.profiles.group.production[1]=test使用:--spring.profiles.active=production 激活整組的環境配置二、外部化配置
1.官方文檔
Core Features
2.獲取系統的環境變量、屬性(擴展)
ConfigurableApplicationContext run = SpringApplication.run(Boot09FeaturesProfileApplication.class, args); ConfigurableEnvironment environment = run.getEnvironment();Map<String, Object> systemEnvironment = environment.getSystemEnvironment(); Map<String, Object> systemProperties = environment.getSystemProperties();System.out.println(systemEnvironment); // 環境變量 System.out.println(systemProperties); // 系統屬性 @Value("${MAVEN_HOME}") private String msg;@Value("${os.name}") private String osName;3.外部配置源
常用:Java屬性文件、YAML文件、環境變量、命令行參數等。
4.配置文件(application.yaml)查找位置
注意:后面的可以覆蓋前面的同名配置項
(1)?項目classpath 根路徑
(2) classpath 根路徑下config目錄
(3) jar包當前目錄
(4) jar包當前目錄的config目錄
(5) /config子目錄的直接子目錄
5.配置文件加載順序
指定環境優先,外部優先,后面的可以覆蓋前面的同名配置項
(1)當前jar包內部的application.properties和application.yml
(2)當前jar包內部的application-{profile}.properties 和 application-{profile}.yml
(3)引用的jar包外部的application.properties和application.yml
(4)引用的jar包外部的application-{profile}.properties 和 application-{profile}.yml
總結
以上是生活随笔為你收集整理的springboot根据环境装配配置文件、启动加载外置配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot2使用JUnit5单
- 下一篇: ThreadLocal应用-使用Thre