文章目录
-
- 概要
- 整体配置流程
- 配置详细说明
- 技术细节
- 小结
概要
多环境开发
在实际项目开发中,一般需要针对不同的运行环境,如开发环境、测试环境、生产环境等,每个运行环境的数据库等配置都不相同,每次发布测试、更新生产都需要手动修改相关系统配置。这种方式特别麻烦,费时费力,而且出错概率大。
Spring Boot为我们提供了更加简单方便的配置方案来解决多环境的配置问题。
将所有的配置都放在一个配置文件中,尤其是每一个配置应用场景都不一样,这显然不合理,于是就有了将一个配置文件拆分成多个配置文件的想法。拆分后,每个配置文件中就可以写需要环境的配置,主配置文件中要指明用哪一个配置文件就好了。
Spring Boot 的配置文件共有两种形式:.properties 文件和 .yml 文件。
不管采纳哪种形式,它们都能通过文件名的命名形式区分出不同的环境的配置,文件命名格式为:application-{profile}.properties 和 application-{profile}.yml。
多环境通常配置:
- properties配置形式:
application.properties #项目主配置文件,所有公共配置;
application-dev.properties #开发环境配置文件;
application-test.properties #测试环境配置文件;
application-prod.properties #生产环境配置文件。
- yml配置形式:
application.yml #项目主配置文件,所有公共配置;
application-dev.yml #开发环境配置文件;
application-test.yml #测试环境配置文件;
application-prod.yml #生产环境配置文件。
整体配置流程
首先,我们新建三个环境配置文件,开发环境配置application-dev.yml、生产环境配置application-prod.yml、测试环境配置application-test.yml
SpringBoot默认加载的是application.yml,想要默认加载其他配置文件,例如生产环境,那么需要在application.yml中配置,这样加载的就是生产环境的配置了,项目打包时候打的也是application-prod.yml文件。
如果想要打包的时候用prod文件,IDE开发的时候用的是dev文件,可以在idea配置里设置;
配置详细说明
第一步:我们有三个配置文件,分别是开发环境配置application-dev.yml、生产环境配置application-prod.yml、测试环境配置application-test.yml;另外还有个SpringBoot默认的application.yml配置文件。
第二步:SpringBoot默认加载的是application.yml,想要默认加载其他配置文件,需要在application.yml中配置:指明使用的那个配置环境,如:prod
这样,服务启动的时候加载的就是生产环境配置了,打包打的也是application-prod.yml这个文件。本地开发的时候也是加载的prod文件。
第三步:如果我们希望项目打包的时候用的prod文件,但是IDE开发的时候用的是dev文件,那么可以进行这样操作:
打开启动配置
将active profiles 填写dev,这样idea启动的时候SpringBoot用的就是dev环境的配置。
技术细节
主配置文件application.yml
例如:
spring:profiles:active: prod # 启动prod
在配置文件中,如果某些配置项所有环境都一样,可以将这些项写入到主配置中,只有哪些有区别的项才写入到环境配置文件中。
- 主配置文件中设置公共配置(全局)
- 环境分类配置文件中常用于设置冲突属性(局部)
小结
- 多环境开发需要设置若干种常用环境,例如开发、生产、测试环境。
- yaml格式中设置多环境使用—区分环境设置边界。
- 每种环境的区别在于加载的配置属性不同。
- 启用某种环境时需要指定启动时使用该环境。