Spring Boot (六)——详解配置文件 application.properties

详解配置文件 application.properties

在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml 。

虽然 properties 文件比较常见,但是相对于 properties 而言,yaml 更加简洁明了,而且使用的场景也更多,很多开源项目都是使用 yaml 进行配置(例如 Hexo)。除了简洁,yaml 还有另外一个特点,就是 yaml 中的数据是有序的,properties 中的数据是无序的,在一些需要路径匹配的配置中,顺序就显得尤为重要(例如我们在 Spring Cloud Zuul 中的配置),此时我们一般采用 yaml,另外,如果yml和properties两个配置文件都存在的话,properties如果和yml有重合部分,那就使用properties的部分,如果不重合就合并了。

本文主要来看看 properties 的问题。

1、位置问题

首先,当我们创建一个 Spring Boot 工程时,默认 resources 目录下就有一个 application.properties 文件,可以在 application.properties 文件中进行项目配置,但是这个文件并非唯一的配置文件,在 Spring Boot 中,一共有 4 个地方可以存放 application.properties 文件。

  1. 当前项目根目录下的 config 目录下
  2. 当前项目的根目录下
  3. resources 目录下的 config 目录下
  4. resources目录下

按如上顺序,四个配置文件的优先级依次降低。如下:
在这里插入图片描述
这四个位置是默认位置,即 Spring Boot 启动,默认会从这四个位置按顺序去查找相关属性并加载。但是,这也不是绝对的,我们也可以在项目启动时自定义配置文件位置。

例如,现在在 resources 目录下创建一个 macay 目录,目录中存放一个 application.properties 文件,那么正常情况下,当我们启动 Spring Boot 项目时,这个配置文件是不会被自动加载的。我们可以通过 spring.config.location 属性来手动的指定配置文件位置,指定完成后,系统就会自动去指定目录下查找 application.properties 文件。
在这里插入图片描述

具体设置如下:
在这里插入图片描述
此时启动项目,就会发现,项目以 classpath:/javaboy/application.propertie 配置文件启动:
加粗样式
这是在开发工具中配置了启动位置,如果项目已经打包成 jar ,在启动命令中加入位置参数即可:

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

2、文件名问题

对于 application.properties 而言,它不一定非要叫 application ,但是项目默认是去加载名为 application 的配置文件,如果我们的配置文件不叫 application ,也是可以的,但是,需要明确指定配置文件的文件名。

方式和指定路径一致,只不过此时的 key 是 spring.config.name 。

首先我们在 resources 目录下创建一个 app.properties 文件,然后在 IDEA 中指定配置文件的文件名:
在这里插入图片描述
指定完配置文件名之后,再次启动项目,此时系统会自动去默认的四个位置下面分别查找名为 app.properties 的配置文件。当然,允许自定义文件名的配置文件不放在四个默认位置,而是放在自定义目录下,此时就需要明确指定 spring.config.location 。

配置文件位置和文件名称可以同时自定义,如图:
在这里插入图片描述

3、多环境问题

在实际工作中通常会有多个环境,例如开发环境,测试环境,生产环境,每个环境都有自己独特的配置内容。Spring-Boot同样支持不同环境的属性配置文件切换,通过创建application-{profile}.properties文件,其中{profile}是具体的环境标识名称,

例如,创建下面配置文件:

开发环境:application-dev.properties
测试环境:application-test.properties
生产环境:application-pro.properties

此时如果想要使用开发环境的配置文件,只需要在application.properties文件中添加下面内容:

spring.profiles.active=dev

这样就激活了application-dev.properties配置文件,非常便捷。如果这些环境中有相同的配置,那么将这些相同的配置写在application.properties文件中即可。

发布了61 篇原创文章 · 获赞 0 · 访问量 595

猜你喜欢

转载自blog.csdn.net/weixin_44075963/article/details/103794237