在配置文件中直接指定java
spring.profiles.active=test
這種方式很是不靈活,在實際開發部不太會使用到web
使用佔位符,在打包時替換,以mavne爲例:spring
首先在配置文件中增長:tomcat
spring.profiles.active=@package.target@
在pom.xml中增長不一樣環境打包的配置:app
<profiles> <profile> <id>dev</id><!-- 開發環境 --> <properties> <package.target>dev</package.target> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> </dependencies> </profile> <profile> <id>prod</id><!-- 生產環境 --> <properties> <package.target>prod</package.target> </properties> </profile> <profile> <id>test</id><!-- 測試環境 --> <properties> <package.target>test</package.target> </properties> <dependencies> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> </dependencies> </profile> </profiles> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering><!-- 使用package.target值,替換配置文件中 @package.target@ --> </resource> </resources> </build>
執行打包命令:eclipse
mvn package -Ptest
缺點:每次打包都要指定profilemaven
JVM參數方式:spring-boot
java命令行:單元測試
java -jar app.jar --spring.profiles.active=dev
tomcat 中 catalina.bat(.sh中不用「set」) 添加JAVA_OPS。經過設置active選擇不一樣配置文件:測試
set JAVA_OPTS="-Dspring.profiles.active=test"
eclipse 中啓動tomcat。項目右鍵 run as –> run configuration–>Arguments–> VM arguments中添加。
-Dspring.profiles.active="dev"
web.xml方式
<init-param> <param-name>spring.profiles.active</param-name> <param-value>production</param-value> </init-param>
標註方式(junit單元測試很是實用)
@ActiveProfiles({"unittest","productprofile"})
ENV方式(建議使用此方式)
系統環境變量SPRING_PROFILES_ACTIVE(注意:是大寫)
優勢: