Spring Boot properties和yml

概念介绍

properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同时期的两款“产品”。在 Spring Boot 时代已经不需要使用 XML 文件格式来配置项目了,取而代之的是 properties 或 yml 文件。

  • properties: properties配置文件属于早期,也是目前创建 Spring Boot(2.x)项目时默认的配置文件格式;
  • yml :yml可以看做是对 properties 配置文件的升级,属于 Spring Boot 的“新版”配置文件

补充引用:
.properties是一种主要在Java相关技术中用来存储应用程序的可配置参数的文件的文件扩展名。它们也可以存储用于国际化和本地化的字符串,这种文件被称为属性资源包(Property Resource Bundles)。 每个参数被存储为一对字符串:一个存储名称参数(被称为“键”),另一个存储值。
YAML(/ˈjæməl/)语言,是一种可读性高、用来表达数据序列的格式。YAML的意思是 ‘Yet Another Markup Language’,即‘仍是一种标记语言’。这个语言以数据为中心。

存放路径

两种配置文件一般都是放在src/main/resources目录下

优先级别

properties的优先级会高于yml,因为正常的情况是先加载yml,接下来加载properties文件。所以如果项目中同时存在这两个文件,两个文件配置同一个配置参数,properties会生效,yml不会生效。

区别说明

两种配置文件示例如下:

# properties
server.port=8088	# 配置项目启动端口号
debug=true	# 开启调试模式
# 配置数据连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:8080/test?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# yaml
server:
  port: 8088  # 配置项目启动端口号
debug: true  # 开启调试模式
spring:  # 配置数据连接信息
  datasource:
    url: jdbc:mysql://127.0.0.1:8080/test?characterEncoding=utf8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

梳理区别:

  1. 结构不同
    yml采用树形结构,更有层次感,可读性很强;相反,properties 则更为直接。可以看出properties存在着数据冗余,一切配置都需要从头写到尾。

  2. 语法不同
    properties 的基本语法格式是“key=value”的形式;yml 的基本语法格式是“key: value”的形式:

  3. 定位不同
    properties 翻译成中文是“属性”的意思,所以它在创建之初,就是用来在 Spring Boot 中设置属性的。yml 是 YAML 是缩写,它的全称 Yet Another Markup Language,翻译成中文是“另一种标记语言”,支持更多的开发语言,它可以用在 Java、PHP、Python、Ruby、JavaScript、Perl、Golang 等语言中,如果一个公司有多个不同语言的开发团队,并且使用了配置中心(在线配置文件)的前提下,那么这些不同语言的开发团队就可以使用同一份配置文件了,也方便后期的管理和维护。所以从二者的定义可以看出:它们的定位和层次是完全不同的,properties 只是用来设置一些属性配置的,而 yml 的格局和愿景更大,它的定位是“另一种标记语言”,所以从格局上来讲 yml 就甩 properties 好几条街。

其他说明

yml 需要注意坑:

  1. 冒号后面需要加空格
  2. 在yml中缩进一定不能使用TAB,否则会报很奇怪的错误,缩进只能用空格

参考资料

properties和yml进行对比 - DJ同学 - 博客园
面试突击74:properties和yml有什么区别? - Java中文社群 - 博客园
感谢以上作者,如有侵权请及时告知删除。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值