Spring Boot学习(四):Profile多环境支持

这里是一个学习过程笔记的汇总:Spring Boot学习汇总  


  在真正的项目开发过程中,除了本地开发环境外,还会有测试环境,线上环境,而且可能各个环境的配置有不一样,比如说数据库相关的配置,还可能有些功能也不一样,那么我们在变更环境时就需要手动去修改配置文件内容,但Spring Boot为我们提供了Profile功能,可以写不同环境的文件,然后只需要添加一个虚拟机参数,就可以激活自己环境要使用的配置文件了。接下来详细说一下具体的配置。

1、多个Profile文件

启动项目时,默认是加载Application.properties主配置文件。

我们可以配置多个Profile文件,格式:application-{profile}.properties  /  application-{profile}.yml

profile参数就写成自己不同环境的标识,比如:开发环境:dev,  测试环境:test , 线上环境:prod 

如下,在resources文件夹下新建一个config文件夹,然后创建三个环境的配置文件:

 

配置好后,在主配置文件中进行修改,spring.profiles.avtive, 即激活dev环境。

启动,

可以看到,正是我们application-dev.properties文件中配置的端口号 8094。

现在激活test环境:

启动:

可以看到,正是application-test.properties文件中配置的端口号 8095

2、多文档块

多文档块主要是针对yml文件而言的,编写格式如下:

server:
  port: 8090
spring:
  profiles:
    active: dev

---
# dev环境
server:
  port: 8091
spring:
  profiles: dev

---
# test环境
server:
  port: 8092
spring:
  profiles: test

---
# prod环境
server:
  port: 8093
spring:
  profiles: prod

使用 --- 可以将一个yml分成多个模块,在第一个模块上使用spring.profiles.active配置要激活的模块

此处配置的dev : 8091

启动:

如果dev模块中没有配置端口号,则会使用第一个模块中配置的默认的 8090,如下:

将dev模块中的端口号配置注掉,再启动:

3、激活Profile的方式

        1、就是上面提到的方式,在配置文件中指定:  spring.profiles.active=dev   

        2、命令行参数, --spring.profiles.active=dev

               2.1、可以在idea工具里面配置,如下,此处配置的是dev 8091

                     

                此时yml里面显示的激活是test 8092

               

          启动,

可以看到,端口号是dev 8091

命令行激活模式,还可以用在执行运行jar文件时,

即 java -jar spring-boot-test-config.0.0.1.SNAPSHOT.jar --spring.profiles.avtive=dev, 这个自行测试,打包运行操作在之前的那篇已经提到过。项目打包使用java -jar运行

         3、还可以配置虚拟机参数:-Dspring.profiles.active=dev,   这个自行测试

         

到此,spring boot配置文件的多环境配置到此结束。

发布了34 篇原创文章 · 获赞 43 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/pavel101/article/details/83858712
今日推荐