通常来讲,项目开发分为开发环境(dev)
、 测试环境(test)
、 预生产环境(pre)
、 生产环境(prod)
。不一样环境之间的配置存在必定的差别,咱们须要根据不一样的部署环境切换配置文件,下面来讲一下如何区分不一样环境进行配置。java
准备下图对应的application-*.properties
文件。spring
<resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.yml</include> <include>**/*.xml</include> </includes> <!-- 是否替换@xx@表示的maven properties属性值 --> <filtering>true</filtering> </resource> </resources>
# 此时配置为开发环境 spring.profiles.active=dev # 此时配置为测试环境 spring.profiles.active=test # 此时配置为生产环境 spring.profiles.active=prod
上面的配置须要咱们在不一样环境的时候修改对应的值,这样来讲很是的不方便,此时咱们能够经过变量的方式进行配置,下面咱们进行修改。springboot
pom.xml中添加app
<profiles> <!--开发环境--> <profile> <id>dev</id> <properties> <env>dev</env> </properties> </profile> <!--测试环境--> <profile> <id>test</id> <properties> <env>test</env> </properties> </profile> <!--生产环境--> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles>
application.properties修改成maven
# 此时经过env来区分不一样环境 spring.profiles.active=@env@
这时咱们在IDEA右侧看到以下:spring-boot
在这里咱们能够选择对应的环境测试
此时咱们已经能够经过切换Profiles来切换环境了。可是这种状况下只能经过运行启动类的方式进行启动,像这样:spa
这样的话才能够应用到Profiles选中的值。code
spring-boot:run方式启动xml
此时不能应用到IDEA右侧选中的Profiles的环境值。
咱们须要在命令后添加指定的环境,像这样:mvn spring-boot:run -P dev
指定以dev的环境进行启动,其中-P
指定pom.xml中对应的profiles的值。此时application.properties配置文件再也不生效。
springboot1.x启动
springboot2.x启动
运行jar包
java -jar -Dspring.profiles.active=test demo.jar # 或者 java -jar --spring.profiles.active=test demo.jar