1. 创建yml配置文件
在resources下创建application.yml,application-dev.yml,application-prd.yml, application-test.yml 配置文件
2. 修改pom 文件
(1) 添加profiles标签
profiles和build标签同级:
<!-- 构建maven打包环境 -->
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<!-- 设置后缀名,与上面的 application-${env}.yml使用-->
<env>dev</env>
</properties>
<activation>
<!--默认为dev环境打包方式-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>prd</id>
<properties>
<env>prd</env>
</properties>
</profile>
</profiles>
添加完后,maven窗口出现打包选项
(2) 在build标签里面添加resources标签
<!--打包生成的文件名-->
<finalName>ROOT</finalName>
<resources>
<!-- 指定配置文件所在的resource目录 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application.yml</include>
<include>application-${env}.yml</include>
<!-- 加载html、js、mapper等文件 -->
<include>**/*</include>
</includes>
<!-- 这里为true时,active: @env@中@占位符才生效,动态加载指定打包类型的配置文件 -->
<filtering>true</filtering>
</resource>
</resources>
(3) 添加maven-resources-plugin插件(重要)
<!-- 使得active: @env@中@占位符-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<!-- 2.7版本在打包时没找到该版本,可去掉-->
<!-- <version>2.7</version>-->
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
添加该插件的目的是使用@占位符,动态根据用户选择的打包类型,选择对应的配置文件,这时上步骤的resources标签里true要为true时才能生效。
3. 配置application.xml 文件(重要)
application.xml文件是springboot默认加载的配置文件,要在里面配置系统要加载哪个打包环境的配置文件。
spring:
profiles:
active: @env@ #这里使用@占位符和env标签,动态加载配置文件,否则要手动改写写对应的id名字,如:dev