在开发 SpringBoot 项目时,通常一道程序会被应用或安装在不同的环境。不过不配置多模块多环境,那么在为不同的环境打包时,就需要频繁修改配置文件,从而容易产生错误。本篇文章将详细为大家介绍在 SpringBoot 项目中是如何配置多模块多环境的。
第一种情况:
spring.profiles.active=环境变量
配置两个环境的,可根据实际需要增加环境模式(开发环境dev,测试环境test,回归坏境retu,预生产环境pre,生产环境prod,等等)
dev代表开发环境:
prod代表生产环境
pom.xml里面配置profiles:
<profiles>
<profile>
<id>dev</id>
<activation>
<!-- 默认激活-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
</properties>
</profile>
</profiles>
系统环境变量配置:
在本地,如果在这些文件里面配置端口和路径:
appilacton.yml:
server: port: 8087 servlet: context-path: /miservice
application-dev.yml:
server: port: 8088 servlet: context-path: /miservice-dev
application-prod.yml:
server: port: 8087 servlet: context-path: /miservice
有效的是:8088那个配置。
在本地,如果分环境没有配置,就以主环境为主:
appilacton.yml:
server: port: 8087 servlet: context-path: /miservice
application-prod.yml:
server: port: 8089 servlet: context-path: /miservice-prod
则是8087这个是有效的。
小结1:
application.yml引入配置为:
spring: profiles: active: ${env}
即:配置读取顺序为:application.yml>>application-dev.yml
第二种情况:
如果想多个模块的配置文件都起作用,可将application.yml文件配置到具体的模块去:
spring: profiles: active: miservice, ${env}
在application.yml和application-miservice.yml和application-dev.yml三个文件中:如果都有端口或路径配置,则读取application-dev.yml里面的配置,关闭application-dev.yml里面的配置则读取application-miservice.yml里面的配置,最后读取application.yml
里面的配置。
application.yml引入配置为:
spring: profiles: active: miservice, ${env}
即:配置读取顺序为:application-dev.yml>>application-miservice.yml>>application.yml
修订一下:上面的结论是刚开始总结的,后面发现读取顺序是按文件的顺序从下到上读取的。即按结构顺序
到此这篇关于在SpringBoot项目中如何配置多模块多环境的文章就介绍到这了,想要了解更多相关springboot多模块多环境内容,请搜索W3Cschool以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!