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

  1. 多profile文件形式,格式:application-{profile}.properties/yml
    例如:application-dev.properties、application-prod.properties
  2. 多profile文档块模式:
    SpringBoot——Profile多环境支持_命令行
  3. 激活方式:
    命令行 --spring.profiles.active=dev
    配置文件 spring.profiles.active=dev
    jvm参数 –Dspring.profiles.active=dev

例子

1.编写多个配置文件,命名方式为application-{profile}.yml,并在application.yml 中指定当前使用的profile。

SpringBoot——Profile多环境支持_配置文件_02

在项目中新建application-dev.yml 和 application-prod.yml 分别对应开发环境和生产环境,然后再application.yml中指定使用哪个profile。

applicatiom-dev.yml

server:
  port: 8888

application-prod.yml

server:
  port: 80

在application.yml 指定使用生产环境

spring:
  profiles:
    active: prod

则系统以80端口启动

SpringBoot——Profile多环境支持_jar_03

如果将application.yml中指定当前profile为dev

spring:
  profiles:
    active: dev

则系统以8888端口启动

SpringBoot——Profile多环境支持_jar_04

2.如果不想编写多个配置文件,yml文件还支持多文档块模式,模块之间用---隔开。

比如在application.yml中分别定义 dev 块和prod块,并指定当前启动环境

spring:
  profiles:
    active: prod
    
    
---
spring:
  profiles: dev
server:
  port: 8081
  
  
---
spring:
  profiles: prod
server:
  port: 8082

切换当前生效的文档块名称,可以从不同端口启动

SpringBoot——Profile多环境支持_spring_05

 

3.激活profile的方式

  1. 通过spring.profiles.active 来指定
  2. 在项目启动的时候指定:java -jar xxxxx.jar --spring.profiles.active=dev
  3. 设置虚拟参数。

在STS(Eclipse)的run-->run Configurations 设置运行参数

SpringBoot——Profile多环境支持_spring_06