基于properties文件的Spring Boot多环境切换
当我们使用properties文件作为Spring Boot的配置文件而不是yaml文件时,怎样实现多环境使用不同的配置信息呢?
在Spring Boot中,多环境配置的文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,如下所示:
- application-dev.properties:开发环境;
- application-test.properties:测试环境;
- application-prod.properties:生产环境;
- 等
至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,而该属性可以写在配置文件中,也可以通过启动时命令来设置。
如application.properties中的spring.profiles.active=test,那么就会加载application-test.properties中的配置的属性。
- 假设有针对不同环境的三个配置文件:application-dev.properties,application-test.properties,application-prod.properties。
- 这三个文件中设置不同的server.port属性,dev环境为1111,test环境为2222,prod为3333。
- application.properties中设置spring.profiles.active=dev,意为默认以dev环境的配置文件为准。
- 当我们执行java -jar XXX.jar时,可以测试到服务器端口为1111,也就是dev配置文件中设置的。
- 当我们执行java -jar XXX.jar --spring.profiles.active=test,可以测试到端口被设置为2222,也就是test配置文件中设置的。
- 同理,当我们执行jar -jar XXX.jar --spring.profiles.active=prod,可以观察到服务端口被设置为3333,也就是生产环境的配置。
总结多环境的配置思路:
- 在application.properties中配置通用内容,使用spring.profiles.active=dev,指定默认的配置。
- 在application-{profile}.properties中配置各个环境不同的内容。
- 通过命令行方式去激活不同的环境配置。
持续学习、持续收获才能带来持续的满足和快乐!