环境介绍
正常来讲,一个软件的开发上线的流程大部分都是分为三个环境,依次是开发、测试、上线。
今天主要讲讲关于springboot如何通过多个properties实现数据库环境部署时自动切换配置的两种方式,部署时切换方式和打包时Maven控制方式。首先介绍部署时切换的方式。
部署时切换
1.1 新增properties文件
如上图:在application.properties文件的同级目录依次创建application-dev.properties,application-qa.properties,application-pro.properties这三个配置文件,dev、qa和prod分别对应上文"环境介绍"中的三个环境。
1.2 配置properties文件
在application.properties中添加配置切换选项,例如切换到dev环境的配置为:spring.profiles.active=dev
1.3 打包发布时部署测试环境
java -jar zuche-0.0.1-SNAPSHOT.jar --spring.profiles.active=qa --server.port=2008
maven控制打包时切换
1.1 添加profiles到pom.xml中,profiles节点是和build同级的
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>qa</id>
<properties>
<env>qa</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
1.2 添加filters节点
<filters>
<filter>src/main/resources/application-${env}.properties</filter>
</filters>
下图是pom.xml完整配置:
1.3 更新application.properties
spring.profiles.active=@env@
注意@env@中的env可以理解为一个变量,需要与pom中设置的${env}对应上。
1.4 执行Maven打包命令
clean package -P qa -D maven.test.skip=true