SpringBoot配置之Profile详解

profile是Spring对不同环境提供不同配置功能的支持,可以通过激活
指定参数等方式快速切换环境

1. 多profile文件形式

  • 格式:application-{profile}.properties
    例如常见的:application-dev.properties, application-uat.properties, application-prod.properties

2. 多profile文档块模式

spring:
  profiles: dev
server:
  port: 8081

---

spring:
  profiles: uat
server:
  port: 8082

---

spring:
  profiles: prod
server:
  port: 8083

SpringBoot配置之Profile详解_第1张图片
SpringBoot配置之Profile详解_第2张图片

3. 激活方式

  1. 在默认配置文件application.properties中指定 spring.profiles.active=dev
    SpringBoot配置之Profile详解_第3张图片
application.properties文件
#激活application-dev.properties中的配置
spring.profiles.active=dev
application-dev.properties文件
server.port=8081
  1. 命令行
    java -jar ch02-springboot-config-profile-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
  2. 虚拟机参数 常用
    在"VM options"中添加-Dspring.profiles.active=dev
    SpringBoot配置之Profile详解_第4张图片
    SpringBoot配置之Profile详解_第5张图片
  3. “Program atguments”
    在“Program atguments”中添加–spring.profiles.active=dev
    SpringBoot配置之Profile详解_第6张图片

4. 不同位置的配置文件优先级

SpringBoot启动会扫描以下位置的application.properties/application.yml文件作为SpringBoot的默认配置文件

  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:/
    以上是按照优先级从高到低的顺序,所有问题的文件都会被加载。如果配置文件中存在相同配置,则高优先级配置内容会覆盖低优先级配置内容。SpringBoot会从这四个位置全部加载主配置文件生成一个互补配置的文件。还可通过spring.congif.location改变默认的配置文件位置
    以下图中的优先级为1–>2–>3–>4, 不过1和2不会被打到包里
    SpringBoot配置之Profile详解_第7张图片

你可能感兴趣的:(SpringBoot配置之Profile详解)