什么是profile功能
我们在开发Spring Boot应用时,通常同一套程序会被安装到不同环境,比如:开发、测试、生产等。其中数据库地址、服务器端口等等配置都不同,如果每次打包时,都要修改配置文件,那么非常麻烦。profile功能就是来进行动态配置切换的。
profile的配置
多profile文件方式
我们模拟生产环境中,配置三个properties文件,分别对应开发环境、生产环境、测试环境
当不进行profile配置的时候,这三个文件都不会起作用,tomcat的启动默认是8080端口。想让文件起作用,需要在主配置文件(application.properties)中写上
spring.profiles.active=dev
这个dev就是多个properties文件中的application-dev.properties。当这一行代码启用后,我们的配置就可以让profiles生效了
yml多文档方式
多个properties配置文件的方式十分繁琐,也会让架构臃肿,于是我们使用yml多文档方式达成同样的效果,同时能精简项目结构
---
server:
port: 8081
spring:
profiles: dev
---
server:
port: 8082
spring:
profiles: test
---
server:
port: 8083
spring:
profiles: product
---
spring:
profiles:
active: pro
三个连续的 “-” 用于划分不同的配置
最后的active指定哪个配置生效。运行结果证明配置有效
profile激活方式
配置文件
即上文提到的使用主配置文件+多properties和yml的active激活方式
虚拟机参数
进入idea的edit configuration设置界面,修改vm options的参数为
-Dspring.profiles.active=test
即可对test配置生效
命令行参数
在vm options的下方有program arguments设置为–spring.profiles,active=product