前言
这里的属性配置是指,在打包部署后,仍然想给jar包文件进行配置的方法(优先级降序排列):
springboot属性配置方法
1.项目中resources目录下的application.yml文件
修改后需重新打包
2.jar包所在目录下的application.yml文件
3.操作环境系统变量
注:名称必须一致,不然会导致不能使用
4.命令行参数
既然已经进行了打包外的配置,那对于开发,测试,生产的环境,能不能有一个更加便利的修改方式呢?
多环境开发-Pofiles
SpringBoot提供的Profiles可以用来隔离应用程序配置的各个部分,并在特定环境下指定部分配置生效
单文件配置
问题
- 如何分隔不同环境的配置
- 如何指定哪些配置属于哪个环境
- 如何指定哪个环境的配置生效
#通用信息指定生效环境
spring:
config:
activate:dev
---
#开发环境
spring:
config:
activate:
on-profile: dev
server :
port: 8081
---
#测试环境
spring:
config:
activate:
on-profile: test
server:
port: 8082
#生产环境
spring:
config:
activate:
on-profile: pro
server:
port: 8083
上述代码可以实现开发环境使用8081接口,测试是8082而生产是8083,只需要更改最上方的生效环境即可。
而写到一个文件中,若配置项过多则繁杂不好整理,有了多文件配置的方法
多文件配置
- 通过多个文件分别配置不同环境的属性
- 文件的名字为 application-环境名.yml
- 在application.yml中激活环境
spring:
config:
activate:dev
server :
port: 8081
server :
port: 8082
server :
port: 8083
但是该方法不利于维护故介绍下文
多环境开发-Pofiles-分组
spring:
profiles:
active: dev
group:
'dev": devServer,devDB,devSelf
- 按照配置的类别,把配置信息配置到不同的配置文件中:application-分类名.yml
- 在application.yml中定义分组:pring.profiles.group
- 在application.yml中激活分组:spring.profiles.active