这里是一个学习过程笔记的汇总: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配置文件的多环境配置到此结束。