SpringBoot多部署环境配置
SpringBoot多部署环境配置
为了实现不同环境不同配置,Maven项目通过简单配置实现分环境。
pom.xml
<profiles>
<profile>
<!--id是每个环境的标识-->
<id>dev</id>
<!--可以设置每个环境需要用动的变量,在之后的配置文件中使用-->
<properties>
<myProperties>dev</myProperties>
</properties>
<!--默认启动的环境,可以使用p+环境的标识,如:pdev指定环境-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<myProperties>test</myProperties>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<myProperties>prod</myProperties>
</properties>
</profile>
</profiles>
SpringBoot配置文件application.properties
#@myProperties@,@中间就是pom文件中每个环境的profile下定义的属性
spring.profiles.active=@myProperties@
logging.config=classpath:logback_@myProperties@.xml
如果用maven启动打包时,系统会直接去找spring.profiles.active后指定的值,比如myProperties是dev,SpringBoot就会去读取application-dev.properties和logback_dev.xml配置文件
资源文件分环境打包
在pom.xml的节点下
<build>
<resources>
<!--公共资源文件-->
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>*.properties</include>
<include>*.xml</include>
<include>public/**</include>
</includes>
<filtering>true</filtering>
</resource>
<!--分环境资源文件使用之前定义的环境变量-->
<resource>
<directory>${basedir}/src/main/resources/${myProperties}</directory>
<includes>
<include>**</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
......
</build>
至此就能基本解决SpringBoot分环境配置的目地了。