SpringBoot中application.xxx配置文件的读取优先级&多环境配置介绍

it2023-11-03  79

文章目录

前言一、application.xxx配置文件的读取优先级二、多环境配置介绍1.定义多个application.properties配置文件2.使用yaml方式指定激活配置文件


前言

本文通过一个简单的项目实例和运行结果, 来演示SpringBoot中application.xxx配置文件的读取优先级和多环境配置


一、application.xxx配置文件的读取优先级

懒得看的人, 我直接先上结论: 其实官网上给写的明明白白,就是下图那个优先级顺序: 翻译成人话就是: 1.在项目的根路径下创建config目录, 然后里面有一个application.yaml文件(读取优先级最高) 2.直接在项目的根路径下创建application.yaml文件(读取优先级第二) 3.在src/main/resources下创建config目录, 然后里面有一个application.yaml文件(读取优先级第三) 4.在src/main/resources下创建application.yaml文件(这也是application.yaml的默认存放位置,读取优先级最低) 还不明白就看下图:

二、多环境配置介绍

在实际开发中,项目可能会在各种不同环境下运行,比如开发环境、测试环境、生产环境,不同的环境有不同的配置,它们的配置文件也不同。其实在SpringBoot中,有两种方式配置多环境,下面我就介绍给大家。

1.定义多个application.properties配置文件

这种方式简单粗暴,只需要定义多个配置文件即可,每个不同的环境设置一个不同的配置文件。 如果你想指定激活哪一个配置文件,那就在默认的application.properties中配置对应的环境。 假如你想激活测试环境,那么就添加: spring.profiles.active=test 假如你想激活开发环境,那么就添加: spring.profiles.active=dev

不过,并不推荐使用这种方式来做,因为SpringBoot支持更强大的yaml方式。

2.使用yaml方式指定激活配置文件

删除之前的application.properties配置文件,新建一个application.yaml,然后在其中添加如下代码

# “---” 就是yaml语法, 区分不同模块的分割线 下面的profiles: active: dev 的意思是, 选择激活哪个配置文件 spring: profiles: active: dev --- # 开发环境配置文件的内容 spring: profiles: dev --- # 测试环境配置文件的内容 spring: profiles: test

“- - -” 其实是yaml的语法,区分不同模块的分割线。 被区分的不同模块里,就存放了原先application-dev.properties和application-test.properties的内容。 这种做法可以不用写那么多配置文件,但是把所有配置集中在一个文件里,真的是好事吗?我觉得最好的方式是根据不同情况,使用不同的方法是最好的。但前提是每种方法咱们都得知道。

最新回复(0)