背景
假如现在有两套环境,一套是本地的,一套是dev的环境。那么将两个环境的配置文件分离开来,既可以采用SpringBoot本身的多环境配置文件也可以采用基于maven的多环境被配置文件
SpringBoot本身的多环境配置文件
1、将原有的application.properties文件进行复制2份,然后重命名为application-local.properties和application-dev.properties,分别在两个文件中配置不同环境的信息。
2、在application.properties文件中通过配置spring.profiles.active属性来设置具体哪个配置文件生效,如下图:
spring.profiles.active=dev 表示 application-dev.properties 生效
基于maven的多环境配置文件分离
1、将原有的application.properties文件重命名为application-local.properties,再复制一份重命名为application-dev.properties,分别在两个文件中配置不同环境的信息。
2、在pom.xml中添加 profile节点信息如下:
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<properties>
<environment>dev</environment><!-- 节点名字environment是自己随意取的 -->
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>local</id>
<properties>
<environment>local</environment>
</properties>
<activation>
<activeByDefault>true</activeByDefault><!-- 默认激活该profile节点-->
</activation>
</profile>
</profiles>
3、在pom.xml中的标签内添加如下 ,这里的${environment}是前面自己起的节点名字
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources/${environment}</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.txt</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
默认选取local。
4、项目打包
打包命令mvn package -Plocal来指定激活id为 local 的profile节点, 这样, 开发环境配置文件就会被打包.
本地: mvn package -Plocal (因为配置了默认激活dev部分, 所以也可以使用mvn package, 这与 mvn package -Plocal 效果相同)
开发: mvn package -Pdev