1 在配置文件中指定

在 application.xml 中指定

1
2
3
spring:
  profiles:
    active: dev

2 在 maven 中指定

在配置文件中使用占位符指定

1
2
3
spring:
  profiles:
    active: @package.target@

在 pom.xml 中以 profile 的形式指定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
   <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>

在打包时进行替换 mvn package -Ptest

3 JVM 参数方式指定

java -jar app.jar --spring.profiles.active=test

4 web.xml 中指定

1
2
3
4
<init-param>
   <param-name>spring.profiles.active</param-name>
   <param-value>production</param-value>
 </init-param>

5 注解方式(Junit 单元测试时使用)

@ActiveProfiles({"unittest","productprofile"})

6 系统环境变量方式

指定系统环境变量 SPRING_PROFILES_ACTIVE 即可

参考文章

  1. Spring boot 激活 profile 的几种方式