
2.5 Properties配置
Spring Boot中采用了大量的自动化配置,但是对开发者而言,在实际项目中不可避免会有一些需要自己手动配置,承载这些自定义配置的文件就是resources目录下的application.properties文件(也可以使用YAML配置来替代application.properties配置,YAML配置将在2.7节介绍)。在2.4节的Web容器配置中,读者已经见识到application.properties配置的基本用法了,本节将对application.properties的使用做进一步的介绍。
Spring Boot项目中的application.properties配置文件一共可以出现在如下4个位置:
• 项目根目录下的config文件夹中。
• 项目根目录下。
• classpath下的config文件夹中。
• classpath下。
如果这4个位置中都有application.properties文件,那么加载的优先级从1到4依次降低,如图2-10所示。Spring Boot将按照这个优先级查找配置信息,并加载到Spring Environment中。

图2-10
如果开发者在开发中未使用application.properties,而是使用了application.yml作为配置文件,那么配置文件的优先级与图2-10一致。
默认情况下,Spring Boot按照图2-10的顺序依次查找application.properties并加载。如果开发者不想使用application.properties作为配置文件名,也可以自己定义。例如,在resources目录下创建一个配置文件app.properties,然后将项目打成jar包,打包成功后,使用如下命令运行:

在运行时再指定配置文件的名字。使用spring.config.location可以指定配置文件所在目录(注意需要以/结束),代码如下:
