Profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、 指定参数等方式快速切换环境。
- 多profile文件形式,格式:application-{profile}.properties/yml
例如:application-dev.properties、application-prod.properties - 多profile文档块模式:
- 激活方式:
命令行 --spring.profiles.active=dev
配置文件 spring.profiles.active=dev
jvm参数 –Dspring.profiles.active=dev
例子
1.编写多个配置文件,命名方式为application-{profile}.yml,并在application.yml 中指定当前使用的profile。
在项目中新建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端口启动
如果将application.yml中指定当前profile为dev
spring:
profiles:
active: dev
则系统以8888端口启动
2.如果不想编写多个配置文件,yml文件还支持多文档块模式,模块之间用---隔开。
比如在application.yml中分别定义 dev 块和prod块,并指定当前启动环境
spring:
profiles:
active: prod
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: prod
server:
port: 8082
切换当前生效的文档块名称,可以从不同端口启动
3.激活profile的方式
- 通过spring.profiles.active 来指定
- 在项目启动的时候指定:java -jar xxxxx.jar --spring.profiles.active=dev
- 设置虚拟参数。
在STS(Eclipse)的run-->run Configurations 设置运行参数