Springboot的多配置文件配置
SpringBoot的配置文件存放的位置
- springboot 的配置文件名字默认叫做application,当使用idea创建springboot项目的时候,默认生成的配置文件后缀是:.properties ,也就是application.properties。
- springboot支持的配置文件后缀有:.properties 和 .yaml 和.yml
这三个配置文件默认的优先级是:.properties > .yml > .yaml - springboot默认读取配置文件的位置有四个:
- 项目根目录/config 目录下
- 项目根目录下
- 类路径/config目录下:classpath:config/application.yml
- 类路径下:classpath: (idea默认生成的配置文件存储位置就是类路径下)
这四个配置文件的优先级:从上往下递减
如果有多个配置文件存在,相同的配置以优先级高的配置文件为准,不同的配置则各个配置文件成互补状态存在
springboot多环境开发配置
- 因为我们开发的项目的开发环境和测试环境和最后的生产环境的配置是不一样的,比如说这三个之间使用的端口号不一样,使用的数据库不一样等等,所以我们可以配置多套环境,也就是创建多个配置文件,在运行spingboot项目的时候选择我们需要的环境就可以自动切换。
配置方法1:
- 将多套配置都放在一个配置文件中application.yml中 ,一个配置文件中配置多套环境,环境之间使用
---
分割开
#通用配置 ,设置启用那种环境以及编写一些公共的配置
spring:
profiles:
active: dev #根据名字不同,表示当前启用不同的环境
server:
servlet:
context-path: /demo #假设这是公共的配置,也就是三种环境都有的相同配置可以提出来
---
#配置测试环境
spring:
config:
activate:
on-profile: test #给这套环境起名为test
server:
port: 8081
---
#配置开发环境
spring:
config:
activate:
on-profile: dev #给这套环境起名为dev
server:
port: 8082
---
#配置生产环境
spring:
config:
activate:
on-profile: pro #给这套环境起名为pro
server:
port: 8083
这样配置之后,需要启用哪种环境来运行springboot的时候,只需要改通用配置中的active属性即可
配置方法2:
- 使用多个配置文件来配置,每个配置文件中只配置一套环境的设置,* 注意:最好多环境的配置文件都放在一个目录下,也就是同一优先级的目录下,而且后缀名最好都相同,这样比较好管理。
处理原来自带的配置文件之外,还分别创建三个配置文件,名字有规范,最好叫做:application-环境名.yml,后缀无所谓,关键是需要 application-环境名
比如:
生产环境的配置文件叫做: application-pro.yml
测试环境的配置文件叫做: application-test.yml
开发环境的配置文件叫做: application-dev.yml
而原来的application.yml文件用于配置一些公共的配置,以及控制哪个springboot启动时加载哪个配置文件,是生产环境还是测试环境。
application.yml
application-dev.yml
application-pro.yml
application-test.yml
启动项目:
是根据我们application.yml中配置的active
来决定运行哪个环境,其实跟第一种方式相比,就是第二种就是将每个环境都单独搞一个配置文件存放,而第一种方式就是全部放在一个配置文件中。