好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

spring boot 如何指定profile启动

spring boot项目可为不同的环境配置相应的配置文件

如下图所示:

pom.xml配置如下:

?

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

57

58

59

60

61

62

63

64

65

66

67

<dependencies>

     其他依赖

     <dependency>

         <groupid>mysql</groupid>

         <artifactid>mysql-connector-java</artifactid>

         <version> 5.1 . 46 </version>

         <scope>runtime</scope>

     </dependency>

     <!--阿里的druid连接池-->

     <dependency>

         <groupid>com.alibaba</groupid>

         <artifactid>druid</artifactid>

         <version> 1.1 . 12 </version>

     </dependency>

</dependencies>    

 

<!--配置环境的profile-->

     <profiles>

         <profile>

             <id>dev</id>

             <properties>

                 <!--使用${environment}获取值-->

                 <environment>dev</environment>

             </properties>

         </profile>

         <profile>

             <id>test</id>

             <properties>

                 <environment>test</environment>

             </properties>

         </profile>

         <profile>

             <id>prod</id>

             <properties>

                 <environment>prod</environment>

             </properties>

         </profile>

     </profiles>

 

     <build>

         <finalname>spring-boot-lean-${environment}</finalname>

         <resources>

             <!--排除环境配置文件-->

             <resource>

                 <directory>src/main/resources</directory>

                 <excludes>

                     <exclude>application-*.yml</exclude>

                 </excludes>

             </resource>

 

             <resource>

                 <directory>src/main/resources</directory>

                 <filtering> true </filtering>

                 <!-- 打包时包含的文件 -->

                 <includes>

                     <include>application-${environment}.yml</include>

                 </includes>

             </resource>

         </resources>

 

         <plugins>

             <plugin>

                 <groupid>org.springframework.boot</groupid>

                 <artifactid>spring-boot-maven-plugin</artifactid>

             </plugin>

         </plugins>

     </build>

本地开发使用开发环境,idea启动开发环境配置如下:

1、点击edit configrations

2、配置如下图

3、启动工程

控制台打印了application-dev.yml中配置的变量

开发时,也有需要一个工程启动多个实例的场景,idea支持一个spring boot项目启动多个实例。

方法非常简单,只需要只需要按照上面的教程在idea再新建一个启动配置,把active profiles指定为prod即可,如下图:

通过下图可以看到,本地可以启动多个spring boot 实例

多环境打包

1、运行maven打包命令:

打包test:

?

1

mvn clean package -d maven.test.skip= true -p test

这样打出来的包中yml文件只会包含:application.yml、application-test.yml

打包prod:

?

1

mvn clean package -d maven.test.skip= true -p test

这样打出来的包中yml文件只会包含:application.yml、application-prod.yml

2、找到jar包运行

java -jar 名称.jar --spring.profiles.active=prod

若打出来的是测试环境的包则运行:

java -jar 名称.jar --spring.profiles.active=test

补充一点

执行 mvn clean package -d maven.test.skip=true -p test ,target目录中只有application.yml、application-test.yml,此时使用idea启动工程时无法使用dev的配置,因为target中没有application-dev.yml。

需要将target删除后,重新启动工程,这时候target中就会有全部的配置文件,就能使用dev的配置了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/u010606397/article/details/80713968

查看更多关于spring boot 如何指定profile启动的详细内容...

  阅读:26次