欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

springboot根据环境装配配置文件、启动加载外置配置文件

发布时间:2025/3/19 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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=8088

3.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根据环境装配配置文件、启动加载外置配置文件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。