介绍:
SpringBoot我有三个配置如果切来切去还要修改配置文件显然是不合理的。
application-dev.yml
application-prod.yml
application-test.yml
application.yml
解决思路:
不同的环境可能需要不同的配置。为了解决这个问题,可以采用以下几种方法进行多环境配置:
使用Spring Boot的profile功能:
1.Spring Boot支持基于profile的属性配置。你可以在application.yml
文件中使用spring.profiles.active
属性来指定当前激活的profile。根据不同的环境,可以创建不同的profile配置文件,
例如application-dev.yml
、
application-test.yml
和
application-prod.yml
。
在运行时,通过设置不同的环境变量或命令行参数来激活相应的profile。
1.修改pom.xml文件
<profiles> <!-- 开发环境 --> <profile> <id>dev</id> <properties> <package.environment>dev</package.environment> </properties> <activation> <!-- 默认激活这个配置 使用dev--> <activeByDefault>true</activeByDefault> </activation> </profile> <!--测试环境--> <profile> <id>test</id> <properties> <package.environment>test</package.environment> </properties> </profile> <!--生产环境--> <profile> <id>prod</id> <properties> <package.environment>prod</package.environment> </properties> </profile> </profiles> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>application.yml</include> <include>application-${package.environment}.yml</include> <include>**/*.xml</include> </includes> </resource> </resources> </build>
2.配置文件取属性(application.yml)
server: port: 9000 tomcat: basedir: /. spring: profiles: active: @package.environment@ # 指定环境
3.根据不同属性启动(启动的时候可以勾选dev就是dev,也可以勾选其他)
4.打包
# 开发环境 mvn clean package -P dev # 测试环境 mvn clean package -P test # 生产环境 mvn clean package -P prod