配置文件介绍
大家都知道默认生成的SpringBoot项目在resource目录下包含一个名为application.properties的配置文件,为了方便有时会将其改为application.yml。但不管是哪个作用都是相同的:Spring的全局配置文件。其作用是对一些默认配置的配置值进行修改。
加载位置
SpringBoot在程序运行的时候会从5个位置自动寻找并加载application.properties或application.yaml:
- Immediate child directories of the /config subdirectory,项目根目录下config的直接子目录下(如/config/app/application.yml)
- The /config subdirectory in the current directory,项目根目录的config目录下
- The current directory,项目根目录下
- The classpath /config package,resource的config目录下
- The classpath root,resource目录下
以上五个位置中的application.yml文件的优先级按照上面列出的顺序依次降低。即如果同一个属性在五个文件中都出现了,以优先级高的为准。官方是根据优先级从低到高依次排序的。
![](https://img.haomeiwen.com/i2065390/b08e2a987ba8f9fc.png)
配置文件名
application.yaml是不是必须叫application.yaml这个名字呢?当然不是必须的。开发者可以自己定义yaml名字,自己定义的话,需要在项目启动时用spring.config.name
指定配置文件的名字
![](https://img.haomeiwen.com/i2065390/15493021f2615fd9.png)
![](https://img.haomeiwen.com/i2065390/e74b007151c4c0b6.png)
这样在项目启动时将按照上面所列出的位置按顺序去查找名为app.yml的文件。
同理environment property
也是可以修改配置文件加载的位置的,配置后优先级高于上面列出的五个位置。
如果是在项目部署阶段可以使用以下语句:
java -jar myproject.jar --spring.config.name=myproject
java -jar myproject.jar --spring.config.location=optional:classpath:/default.properties,optional:classpath:/override.properties
网友评论