在一般的项目开发过程中,最简单的一般也有三个环境,比如 开发(dev) 测试(test) 生产(prod)环境 。
当然多的话还有 sit环境,预发环境,stable环境,沙箱环境等等......
下面介绍怎么应用springboot运用多环境配置:
一、项目结构
二、配置说明
application.properties 文件中配置全局配置,比如
1. 默认加载哪个环境的配置
# 系统加载哪个环境的配置,此处加载dev环境 application-dev.properties 配置
spring.profiles.active=dev
2. 文件上传最大大小控制
3. mybatis 扫描xml目录等等
application-dev.properties 这类文件分别是各个环境的配置。比如第三方接口地址。
特点:各个环境中配置key应该都一样,只有每个配置项对应的value不同(因为不同的环境,对应不同的域名或者ip端口)。
三、maven配置
主pom下添加 profiles插件:
<!--默认执行dev环境配置-->
<profiles>
<profile>
<!--dev环境-->
<id>dev</id>
<properties>
<spring.active>dev</spring.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!--test环境-->
<id>test</id>
<properties>
<spring.active>test</spring.active>
</properties>
</profile>
<profile>
<!--prod环境-->
<id>prod</id>
<properties>
<spring.active>prod</spring.active>
</properties>
</profile>
</profiles>
四、idea中显示效果
三中添加完成后,idea显示如下:
五. 多环境配置启动
重点是下面执行语句中的环境配置项参数,代表启动测试环境(配置) --spring.profiles.active=test
// jar包启动语句
java -jar mac-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=test >> /var/log/mac-test.log 2>&1 &
说明:
spring.profiles.active=test :对应多环境配置的情况,test指的是测试环境,对应application-test.properties 配置文件,意思是运行测试环境的配置
/var/log/mac-test.log :指把程序运行的日志全部输出到/var/log 下 mac-test.log文件中。
一般项目都会配置日志框架,比如log4j等。启动会配置具体的日志输出路径。
六、问题
根据上述配置,发现通过勾选idea profiles中的环境执行的时候,一直执行的是默认dev配置,
怎么改都不生效?
解决方案:
因为你使用的是idea自带的maven工具,替换成你本地安装的maven即可。
以上