• 面试突击74:properties和yml有什么区别?


    🚀 优质资源分享 🚀

    学习路线指引(点击解锁)知识定位人群定位
    🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
    💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

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

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

    properties 和 yml 的区别主要体现在以下 4 点:

    1. 定义和定位不同;
    2. 语法不同;
    3. yml 更好的配置多种数据类型;
    4. yml 支持多种语言、通用性更好。

    区别1:定义和定位不同

    properties 翻译成中文是“属性”的意思,所以它在创建之初,就是用来在 Spring Boot 中设置属性的。
    yml 是 YAML 是缩写,它的全称 Yet Another Markup Language,翻译成中文是“另一种标记语言”。

    所以从二者的定义可以看出:它们的定位和层次是完全不同的,properties 只是用来设置一些属性配置的,而 yml 的格局和愿景更大,它的定位是“另一种标记语言”,所以从格局上来讲 yml 就甩 properties 好几条街。

    区别2:语法不同

    properties 和 yml 语法区别很大,properties 配置文件的基本用法如下:

    # 配置项目启动端口号
    server.port=8088
    # 开启调试模式
    debug=true
    # 配置数据连接信息
    spring.datasource.url=jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    从上述配置文件可以看出:properties 的基本语法格式是“key=value”的形式,而 yml 的配置文件的基本用法如下:

    # 配置项目启动端口号
    server:
      port: 9090
    # 开启调试模式
    debug: true
    # 配置数据连接信息
    spring:
      datasource:
        url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
        username: root
        password: root
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    从上述配置文件可以看出:yml 的基本语法格式是“key: value”的形式,且冒号后面的空格是不能被省略的,否则项目启动会报错:
    ![image.png](https://img-blog.csdnimg.cn/img_convert/1b04408e17f559aa3f6a4d1c82a0be4c.png#clientId=u02e0da23-fcb2-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=226&id=u805f9f56&margin=[object Object]&name=image.png&originHeight=451&originWidth=1627&originalType=binary&ratio=1&rotation=0&showTitle=false&size=62592&status=done&style=none&taskId=u8403a6f8-1df6-4032-8f1e-da8e355dec1&title=&width=813.5)
    从上述 properties 和 yml 配置数据库的连接信息可以看出,相比于 properties 来说,yml 的语法更简洁,并且可读性更高,它们的区别如下:
    ![image.png](https://img-blog.csdnimg.cn/img_convert/6401b7930725f00c9f2ba16cef301107.png#clientId=u02e0da23-fcb2-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=472&id=u1dfda225&margin=[object Object]&name=image.png&originHeight=944&originWidth=2035&originalType=binary&ratio=1&rotation=0&showTitle=false&size=123847&status=done&style=none&taskId=uc4c7f3d8-d53f-4711-85b9-a29f318941e&title=&width=1017.5)

    区别3:yml 更好的配置多种数据类型

    yml 除了可以很好的配置基础数据类型之外,它还可以很方便的配置对象、集合等数据类型。

    在 yml 中配置对象数据类型:

    student:
      id: 1
      name: Java
      age: 18
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    或者是使用行内写法配置对象类型(与上面的写法的效果一致):

    student: {id: 1,name: Java,age: 18}
    
    
    • 1
    • 2

    在 yml 中配置数组也有两种写法,可以这样写:

    animal:
      - Dog
      - Cat
    
    
    • 1
    • 2
    • 3
    • 4

    或者使用行内写法:

    animal: [Dog, Cat]
    
    
    • 1
    • 2

    区别4:yml 可以跨语言

    properties 格式的配置文件只适用于 Spring Boot 项目,也就是只适用于 Java 语言,而 yml 支持更多的开发语言,它可以用在 Java、PHP、Python、Ruby、JavaScript、Perl、Golang 等语言中。

    至于作用嘛?如果一个公司有多个不同语言的开发团队,并且使用了配置中心(在线配置文件)的前提下,那么这些不同语言的开发团队就可以使用同一份配置文件了,也方便后期的管理和维护。

    总结

    properties 和 yml 都是 Spring Boot 支持的两种配置文件,其中 yml 格式的配置文件可以看作是对 properties 配置文件的升级。它们的主要区别有 4 点:定义和定位不同、语法不同:yml 的语法更简单,且可读性更高、yml 可以更好的配置多种数据类型,比如对象和集合、yml 可以跨语言使用,通用性更好。

    是非审之于己,毁誉听之于人,得失安之于数。

    公众号:Java面试真题解析

    面试合集:https://gitee.com/mydb/interview

  • 相关阅读:
    STL基础知识
    在C语言中,堆和栈是两种不同的内存分配机制
    java面试题整理《基础篇》七
    运放的基础知识
    PHP 反序列化漏洞:手写序列化文本
    昇思MindSpore安装教程
    chatgpt赋能python:Python请求头——让你的网络请求更有效率
    JUC并发编程面试题(自用)
    新生儿长牙期:原因、科普和注意事项
    数据元素介绍
  • 原文地址:https://blog.csdn.net/u012804784/article/details/126344609