多环境文件配置

根据Spring Boot的使用指导可知,一般情况下,一个项目会有一个默认的配置文件的位置,即在resources文件夹下。如,我们新建一个springboot-config的项目文件,我们会发现:

 默认的项目配置文件类型是.properties的,不过,我们通常选择将它修改为.yaml类型的,即,项目默认的配置文件为application.yaml,位置在resources文件夹下。我们只修改文件的类型,不修改文件名,application是Spring规定的配置文件名,不可随意更改。

接下来,我们从官网上看到,配置文件还可以在以下几个地方出现:

第一个:在项目文件下创建一个config文件夹,将配置文件写里边。

第二个:直接在项目文件下写配置文件。

第三个:在classpath下新建config文件夹来存放配置文件。classpath路径一般是指类路径,即src目录,src目录下的配置文件一般写在main下的resources下。所以我们在resources文件下新建一个config文件夹来存放配置文件。

第四个:classpath的根目录下。刚刚说过,类路径下的配置文件是存储在resources文件下,那么这第四个位置就是原始的默认的配置文件的位置了。只不过现在我们给它改名为application.yaml。

接下来,我们分别测试一下这四个配置文件的优先级,即测试一下哪个位置的配置文件会在运行时被首先读取运行。我们按照上面的顺序分别给配置文件配置端口号为8081、8082、8083和8084,观察哪个配置文件的优先级最高。

我们发现其实项目根目录下的配置文件的优先级最高,对应的是配置文件的第一个位置。接着,我们按照此方法测试了其他三个配置文件的优先级,发现这四个文件的优先级就是官网上给出的那个顺序。即项目目录下的config里的配置文件优先级最高,类目录下的配置文件优先级最低。

以上内容告诉我们配置文件存放的四个位置及其各自的优先级,下面我们来看一看多种环境下的配置文件。我们在平时的工作中会同一个项目会遇到各种环境,比如测试环境、开发环境、生产环境之类的,那么在这种情况下,我们如何在一个项目中选择不同环境下的配置文件呢?

首先,还是上面的那个项目,删除我们新建的三个配置文件,并把默认的配置文件类型改回默认的properties类型。之后在默认的配置文件的位置新建我们需要的不同环境下的配置文件,使用application-xxx来区分不同环境。

之后,我们使用不同的端口号来测试一下这三个文件的优先级。其实不用测我们也知道默认的优先级最高。

那么,此时我们又该如何指定使用不同环境下的配置文件呢?通过使用spring.profiles.active=xxx来选择激活我们要使用的环境下的配置文件。如,我们要使用开发环境下的配置文件,那么我们只需要在初始的配置文件中写入spring.profiles.active=dev,即可指定、激活开发环境下的配置文件。注意,不需要指定要使用的文件的全名,只需要“-”后的内容即可。

我们指定的是开发环境下的配置文件,那么结果就显示端口号为8081。

以上我们说的是properties类型的配置文件在多环境下的配置方法,这种方法有一个很明显的缺点,就是你用到了几个环境,你就必须得有几个配置文件,写起来很麻烦。但是yaml就不一样了,它可以通过自身强大的多文件模块功能来实现在一个文件中书写多个环境变量。下面我们来学习一下强大的yaml在多环境下文件配置的强大的多文件模块功能。

首先,将默认的配置文件改成.yaml格式,并将其他两个配置文件删除。

此时,我们还没有指定使用哪个模块的配置文件呢,所以此时运行程序肯定显示端口8080,那么我们如何指定呢?

如此指定,我们便得到了开发环境的8081端口。

推荐参考官方文档

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值