Net程序员讲JavaSpringBoot系列:Yml与JSON、XML的区别
程序员文章站
2022-07-08 22:19:54
...
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
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>