springBoot 配置 profile 以及内外部配置文件加载顺序

一、profile

1.1、profile 简介

        我们在开发 Spring Boot 应用时,通常同一套程序会被安装到不同环境,比如:开发、测试、生产等。其中数据库地址、服务器端口等等配置都不同,如果每次打包时,都要修改配置文件,那么非常麻烦。profile 功能就是来进行动态配置切换的。

1.2 配置方式

1.2.1 多 profile 方式

        首先,在我们的工程里面创建三个配置文件,如下所示,这个名字是固定的格式,不要随便的修改。

        分别在里面配置端口号信息,如下:

# application-dev.properties
server.port=8081

# application-test.properties
server.port=8082

# application-pro.properties
server.port=8081

        配置完成后,启动工程,如下图:

1.2.2 yml 多文档方式

        我们上面创建了三个配置文件,看着太多了,很不舒服,我们这次只创建一个 application.yml 文件,在里面进行配置,如下图:

        在 application.yml 中编写如下内容:

# --- 是固定的模板用来分隔的符号
---
server:
  port: 8081
spring:
  profiles: dev
---
server:
  port: 8082
spring:
  profiles: test
---
server:
  port: 8083
spring:
  profiles: pro
---
# 在底下激活
spring:
  profiles:
    active: test

        启动工程,如下:

1.3 激活方式

        配置完了之后需要激活,如果没有激活就和没配置一样,哪个配置文件都不会生效,一旦激活成功,激活成功的配置文件里面的属性就都会被加载。

1.3.1 配置文件激活

        在 application.properties 里面添加如下的属性即可激活。启动工程。

# 这个 dev 是文件的后缀
spring.profiles.active=dev

1.3.2 虚拟机参数激活

        打开 idea Edit Configurations ,如下图:

        在  VM options 添加 -Dspring.profiles.active=dev

        然后启动工程,启动信息如下:

1.3.3 命令行参数激活

        打开 idea Edit Configurations ,如下图:

        在  Program arguments 添加 --spring.profiles.active=pro

        然后启动工程,启动信息如下:

        也可以在执行 jar 文件的时候指定命令行参数,格式如下:

java –jar xxx.jar --spring.profiles.active=dev

二、内部配置加载顺序

        假设我们使用的是一个 maven 多模块工程,如下图,

        Springboot 程序启动时,会加载当前项目的 config 目录、当前项目的根目录、classpath config 目录、以及 classpath 的根目录的配置文件,且优先级是从高到低的,下面分别介绍下

2.1 当前项目的 config 目录

2.2 当前项目的根目录

2.3 classpath config 目录

2.4 classpath 的根目录

三、外部配置加载顺序

        上一小节介绍了 springboot 内部文件的加载顺序,接下来介绍下 springboot 外部配置的加载顺序,springboot 允许很多地方定义一个外部的配置,我们简单的来介绍几种,下面的这几种优先级从高到低。

3.1 命令行参数

        意味着我们可以在命令行参数的位置来写参数,如下图,我们正常启动 jar 包的命令如下:

java -jar xxxxxx.jar

java -jar xxxxxx.jar --server.port=8088

3.2 指定配置文件位置

        还可以在外部指定配置文件的位置,也是在命令行执行时指定,如下图:

java -jar xxxxxx.jar --spring.config.location=e://application.properties

3.3 加载同级的配置文件

3.3.1 加载配置文件

        此时 jar 包的位置和配置文件的位置,如下所示

        启动 jar 包,可以发现,加载的是外面配置文件的端口号

3.3.2 加载文件夹的配置文件

        此时 jar 包的位置和配置文件的位置,如下所示,其中,config 文件夹里面有一个 application.properties 配置文件。

        启动 jar 包,可以发现,加载的是 config 文件夹里面配置文件的端口号。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐的小三菊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值