背景
起初在本地idea中编码,所有配置信息放到application.properties即可。但是需要部署到不同的环境,配置信息就有了差异化。如果这是还维护一个文件,就非常被动,不同环境之间改来改去,容易出错。springboot通过多profile做了很好的支持。
实战
实现方式:多profile文件方式
application-{profile}.properties,profile占位符表示当前环境的名称。
- 注意是中划线“-”,不是下划线。这里容易出错。
实现方式:多profile文档块方式
- 通过“---"来区分,也是中划线。
spring: profiles: active: dev --- server: port: 8081 spring: profiles: test --- server: port: 8082 spring: profiles: prod
生效方式
- 仅仅介绍两种种常用的方式
- 在application.properties中指定,spring.profiles.active=dev,这个适合本地调试
- 启动命令指定:--spring.profiles.active=dev,这个适合部署到服务器
多properties配置文件间的依赖关系
- 首先springboot加载不带环境的application.properties配置文件。
- 然后加载指定环境application-{profile}.properties配置文件,与第一步重叠配置会被覆盖,以最后的为准。
- 通常在application.properties中填写共用的,application-{profile}.properties中做差异化的操作。这样可以做到更专注。
总结
本篇侧重两个点,一是如何区分多环境;二是利用配置文件的加载顺序,如何做到最优配置。