欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Net程序员讲JavaSpringBoot系列:Yml与JSON、XML的区别

程序员文章站 2022-07-08 22:19:54
...

XML

Net程序员讲JavaSpringBoot系列:Yml与JSON、XML的区别

什么是XML?

<?xml version="1.0" encoding="utf-8" ?>
<note>
    <name>老程的自习社</name>
    <weburl>https://blog.csdn.net/qq_42729486</weburl>
</note>
  • XML是被设计用来传输和存储数据的;
  • XML是可扩展标记语言(Extensible Markup Language)
  • XML使用标记语言,类似HMTL,但又所不同,HTML是用来现实数据的
  • XML的设计宗旨是传输数据,而非现实数据
  • XML的标签没有被预定义,意味着,可以*发挥
  • XML是一种更具有自我描述性;
  • XML是W3C的推荐标准

用途

  • XML把数据与HMTL分离
  • XML简化数据共享
  • XML简化数据共享
  • XML跨平台
  • XML是数据更有应,因为它独立于硬件、软件以及应用程序,通过XML,数据可以提供各种阅读设备使用(平板、语音设备、新闻阅读器)等等

缺点

  • 比专业的DB软件占用更多的空间
  • 有点复杂,解析要写N多的方法
  • 缺少安全保护,数据容易被污染
  • 格式转换的问题

Json

Net程序员讲JavaSpringBoot系列:Yml与JSON、XML的区别
Json(JavaScript Object Notation)一种轻量级的数据交换格式,已与编写和阅读,也容易及其解析,随着前后端的分离技术普遍的应用,JSON的作用越来越大;

{
    "data":{
        "name":"老程的自习社",
        "url":"https://blog.csdn.net/qq_42729486"
    }
}

特性

  • 键值对的无序集合
  • 值得有序列表

YML

YAML (YAML Ain’t a Markup Language)不是一种标记语言,通常以.yml为后缀的文件,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。

优点

  • 易于阅读,和JSON,XML一样;
  • YML数据在编程语言之间是可以移植的,JSON和XML也一样;
  • YML支持单程处理;
  • YML具有表现力和可扩展性;
toudiao:
  name: 老程的自习社
  url: https://blog.csdn.net/qq_42729486

约定

  • K:V(key:value)键值对, 冒号后面必须有一个空格
  • 使用空格的缩进标识层级的管理,一定要左对齐,空格数目不重要
  • 大小写明显
  • 松散表示,驼峰和其他的在YML中都是可以自动映射,Laocheng,laocheng,lao-cheng都是可以滴

键值关系:通俗点,int、string、bool 、datetime,对象、array、list、set…都是可以滴
字符串转义符:
“\N”:\N输出成换行
‘\N’:\N输出\N’
N种写法:行内写法,正规写法,不多介绍,百度太多了


在JAVASpringBoot中溜一下代码

在idea中以.YML结尾的文件,输入

toudiao:
  name: 老程的自习社
  url: https://blog.csdn.net/qq_42729486

在pom.xml中引入

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-configuration-processor</artifactId>
     <optional>true</optional>
 </dependency>

创建laocheng.class

package com.kevin.demo;

import org.springframework.boot.context.properties.ConfigurationProperties;
/*将配置文件的每一个属性的值,映射到组件中
* @ConfigurationProperties 告诉springboot将本类中的所有属性和配置文件中的相关配置进行绑定
* @prefix标注
 */
@ConfigurationProperties(prefix="toudiao"public class laocheng {


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    private  String name;
    private  String url;

    @Override
    public String toString() {
        return "laocheng{" +
                "name='" + name + '\'' +
                ", url='" + url + '\'' +
                '}';
    }

}

导入测试依赖包

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
   			<groupId>junit</groupId>
  			<artifactId>junit</artifactId>
   			<version>4.10</version>
   			<!--<scope>test</scope>-->
		</dependency>

启动,输出结果