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分环境配置的目地了。


版权声明:本文为binskyer原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。