Spring boot 激活 profile的幾種方式

Spring boot 激活 profile的幾種方式

  1. 在配置文件中直接指定java

    spring.profiles.active=test

    這種方式很是不靈活,在實際開發部不太會使用到web

  2. 使用佔位符,在打包時替換,以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

  3. 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"
  4. web.xml方式

    <init-param>
       <param-name>spring.profiles.active</param-name>
       <param-value>production</param-value>
     </init-param>
  5. 標註方式(junit單元測試很是實用)

    @ActiveProfiles({"unittest","productprofile"})
  6. ENV方式(建議使用此方式)

    系統環境變量SPRING_PROFILES_ACTIVE(注意:是大寫)

    優勢:

    1. 應用不須要關注環境,環境應該有主機或者容器來定義;
    2. 一臺主機部署多個應用不須要在每一個Tomcat的setenv.sh裏面增長配置,或者在每一個啓動腳本里去增長:-Dspring.profiles.active=prod。本地Windows調試的時候,也不想在eclipse裏去設置環境變量,隨便右鍵debug便可;
    3. 只須要打一個包就能夠在全部環境運行,能夠避免因打錯包或部署錯包形成的一系列問題。
相關文章
相關標籤/搜索