「Spring Boot」配置优先级
# 配置方式
激活的 profiles
要在项目内创建对应的配置文件,格式为 application-{profile}.yml
。
# 命令行方式
命令行方式
是一种外部配置的方式,在执行 java -jar
命令时可以通过 --spring.profiles.active=test
的方式进行激活指定的 profiles
列表。
使用方式如下所示:
java -jar order-service-v1.0.jar --spring.profiles.active=dev &> order-service.log &
# 系统变量方式
Mac/Linux 系统配置环境变量
编辑环境变量配置文件 /etc/profile
,添加名为 SPRING_PROFILES_ACTIVE
的环境变量,如下所示:
# spring 环境激活
export SPRING_PROFILES_ACTIVE=dev
Windows 系统配置环境变量
环境变量的配置方式请参考 Java 环境变量配置,新建一个名为 SPRING_PROFILES_ACTIVE
的系统环境变量,设置变量的值为 dev
即可。
系统变量的方式适用于系统下所部署统一环境的
SpringBoot
应用程序,如统一部署的都是prod
环境的应用程序。
命名转换规则
spring.profiles.active -> SPRING_PROFILES_ACTIVE
spring.cloud.nacos.discovery.register-enabled -> SPRING_CLOUD_NACOS_DISCOVERY_REGISTERENABLED
demo.test[1].ab-cd-ef -> DEMO_TEST_1_ABCDEF
# Java 系统属性方式
Java系统属性方式
也是一种外部配置的方式,在执行 java -jar
命令时可以通过 -Dspring.profiles.active=test
的方式进行激活指定的 profiles
列表。
使用方式如下所示:
java -Dspring.profiles.active=dev -jar order-service-v1.0.jar &> order-service.log &
注意:
-D
方式设置Java系统属性
要在-jar
前定义。
# 配置文件方式
配置文件方式
是最常用的方式,不过灵活性不强,局限性比较大,不建议使用这种方式来激活配置文件。
我们只需要在 application.yml
配置文件添加配置即可,使用方式如下所示:
spring:
profiles:
# 激活profiles
active: dev
# 优先级
命令行方式 > Java系统属性方式 > 系统变量方式 > 配置文件方式
# 参考资料
上次更新: 2023/11/13, 12:24:50