XML
XML
什么是XML?
<?xml version="1.0" encoding="utf-8" ?>老程的自习社https://www.toutiao.com/c/user/70114154003/#mid=1659479667793931
- XML是被设计用来传输和存储数据的;
- XML是可扩展标记语言(Extensible Markup Language)
- XML使用标记语言,类似HMTL,但又所不同,HTML是用来现实数据的
- XML的设计宗旨是传输数据,而非现实数据
- XML的标签没有被预定义,意味着,可以自由发挥
- XML是一种更具有自我描述性;
- XML是W3C的推荐标准
用途
- XML把数据与HMTL分离
- XML简化数据共享
- XML简化数据共享
- XML跨平台
- XML是数据更有应,因为它独立于硬件、软件以及应用程序,通过XML,数据可以提供各种阅读设备使用(平板、语音设备、新闻阅读器)等等
缺点
- 比专业的DB软件占用更多的空间
- 有点复杂,解析要写N多的方法
- 缺少安全保护,数据容易被污染
- 格式转换的问题
Json
JSON
Json(JavaScript Object Notation)一种轻量级的数据交换格式,已与编写和阅读,也容易及其解析,随着前后端的分离技术普遍的应用,JSON的作用越来越大;
{ "data":{ "name":"老程的自习社", "url":"https://www.toutiao.com/c/user/70114154003/#mid=1659479667793931" }}
Json层级
特性
- 键值对的无序集合
- 值得有序列表
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://www.toutiao.com/c/user/70114154003/#mid=1659479667793931
yml的约定
约定
- 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://www.toutiao.com/c/user/70114154003/#mid=1659479667793931
在pom.xml中引入
org.springframework.boot spring-boot-configuration-processor true
创建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 + ''' + '}'; }}
导入测试依赖包
org.springframework.boot spring-boot-starter-test testjunit junit 4.10
启动,输出结果