Spring Boot配置文件详解

Laughing
2020-09-24 / 1 评论 / 1,274 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年03月18日,已超过342天没有更新,若内容或图片失效,请留言反馈。

关于配置文件

springboot有两种格式的配置文件,即yamlproperties,两种配置文件在功能上完全等效。
相对于 properties而言,yaml更加简洁明了,而且使用的场景也更多。除了简洁,yaml还有另外一个特点,就是yaml中的数据是有序的,properties 中的数据是无序的
关于yaml以及properties详细使用方法,我们稍后开贴专门说明,这里不再赘述。

配置文件加载顺序

默认情况下,springboot应用会依次从以下位置加载配置文件:

  1. 项目根目录下的config文件夹
  2. 项目根目录
  3. resources目录下的config文件夹
  4. resources目录

这四个是默认的位置,我们可以简单验证一下。

在项目根目录下config文件夹下的application.yaml,设置端口为6666

server:
  port: 6666

启动项目,我们可以看到,默认端口已经是6666

自定义配置文件位置

除了上述的四个默认加载配置文件的位置,我们也可以自定义文件位置。通过

pring.config.location 

即可指定加载配置文件位置

Idea调试时动态指定配置文件位置

举个栗子,我在resources文件夹下面建立一个blog文件夹,并将 application.yaml 文件放到blog文件夹下,同时设置端口为6666

  1. 加入创建配置文件,并按照如下设置
  2. 修改Idea配置信息

    spring.config.location=classpath:/blog/
一定要注意配置文件位置,最后的/不能少,否则会报错
  1. 运行程序,我们会发现端口变成了 6666

运行jar包是动态指定配置文件位置

除了在Idea调试,我们终归要将程序发不成jar包,那么jar包如何加载配置文件呢?

我们是以上面的程序进行说明,此时,我们将配置文件单独拿出来,同时将resource\blog文件夹删掉。并通过

mvn package

将程序打包成jar包,打包后的jar包名称为properties-0.0.1-SNAPSHOT.jar ,然后我们将jar包application.yaml文件放到一起。

我们通过

java -jar properties-0.0.1-SNAPSHOT.jar --spring.config.location = ./

运行程序,通过控制台,我们可以看到此时端口仍然是6666,证明已经加载我们的配置文件。

自定义配置文件名

自定义配置文件名的方式,与自定义配置文件的方式类似,同时两个命令可以一起使用。

spring.config.name

这里只展示一下用java -jar命令运行的方式,我把application.yaml文件改成blog.yaml,内容不变。

java -jar properties-0.0.1-SNAPSHOT.jar --spring.config.location=./ --spring.config.name=blog

可以看到,程序依然以6666端口成功启动。

自定义配置文件加载顺序

上面说了工程内的配置文件就自定义配置文件,如果自定义配置文件与默认配置文件同时存在,那么springboot如何加载呢。

  1. 新建工程
  2. 修改application.propertes端口号改成1234
  3. package打包工程
  4. 使用java -jar 命令加载配置文件,并制定端口为4321
    我们看到,程序先加载了环境变量中的配置信息
0

评论 (1)

取消
  1. 头像
    小白
    MacOS · Google Chrome

    写的很想器

    回复
  2. 头像
    gh
    MacOS · Safari

    谢谢分享!

    回复
  3. 头像
    Laughing 作者
    iPhone · Safari
    @ 孤狼

    我自己一直在用

    回复