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


    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
    

    从上述配置文件可以看出: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
    

    从上述配置文件可以看出:yml 的基本语法格式是“key: value”的形式,且冒号后面的空格是不能被省略的,否则项目启动会报错:
    image.png
    从上述 properties 和 yml 配置数据库的连接信息可以看出,相比于 properties 来说,yml 的语法更简洁,并且可读性更高,它们的区别如下:
    image.png

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

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

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

    student:
      id: 1
      name: Java
      age: 18
    

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

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

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

    animal:
      - Dog
      - Cat
    

    或者使用行内写法:

    animal: [Dog, Cat]
    

    区别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

  • 相关阅读:
    团队作业第三次——项目需求分析
    快乐就队——第八次站立式会议(05-02)
    快乐就队——第七次站立式会议(04-30)
    快乐就队——第六次站立式会议(04-29)
    快乐就队——第五次站立式会议(04-28)
    快乐就队——第四次站立式会议(04-27)
    快乐就队——第三次站立式会议(04-26)
    快乐就队——第二次站立式会议(04-25)
    快乐就队——第一次站立式会议(04-24)
    快乐就队——项目系统设计与数据库设计
  • 原文地址:https://www.cnblogs.com/vipstone/p/16587027.html
Copyright © 2020-2023  润新知