当前位置:网站首页>XML和注解(Annotation)
XML和注解(Annotation)
2022-08-02 14:21:00 【靳靳有味小丸子】
XML
一、什么是XML
XML(eXtended Markup Language)是一种可扩展标记语言,主要用于数据传输。
二、XML文档的结构
主要组成为:声明,元素,注释,属性,文本等。
一个格式良好的XML文档:1.XML文档必须有声明,且第一行必须为声明
2.每个XML文档只有一个根元素
3.标记大小写敏感
4.标记必须成对出现
5.空标记关闭</a>
6.属性值要用引号
XML中预定义的符号如:<、"、> ,如果XML文本中出现了这样的数据,可以使用预定义的实体来代替。一般常见的实体有:
如果有大量特殊字符,可以使用CDATA标签,表示标签中未纯文本数据。
三、XML的解析技术
XML文档内容,需要读取到内存中,才能被应用程序所识别。对于标记、子
标记,以及标记属性数据的提取,称为XML解析。
XML提供了两种解析技术:DOM解析,是一种基于树结构的API;SAX解析,一种事件驱动的API。
DOM解析的特点:1.给予树状结构的API
2.整个XML文档必须在内存中解析和存储
3.客户端应用程序就可以随机访问这些对象
4.大型文档则会造成内存紧张
SAX解析特点:1.不必把整个文件加载到内存中,占用的内存少
2.不能对文档进行随机访问
3.SAX是只读的
4.文档只会遍历一次
四、XML的优缺点
优点:1、可扩展性强。XML和它的定义文件(DTD)是文本文件,添加或修改都很方
便。
2、满足开闭原则。XML的配置文件是独立于Java代码之外的,所以如果要修
改配置是不需要改动Java代码的。
缺点:1、解析麻烦,需要第三方类库配合
2、配置文件过多后,会导致项目管理、维护变得困难。
3、在做代码的关联配置时麻烦,会让开发人员不断在java代码和XML配置文
件之间来回切换。
4、查错困难,XML只是文本文件,很多报错只能在运行期间体现,IDE集成
开发环境不能在编译期排查。
注解
一、什么是注解?
注解(Annotation)是一种元数据形式,属于java中的一种数据类型,也是一个标记,也称为描述数据的数据。
二、注解的语法
注解语法支持两种注解:
1、JDK自带的Annotation注解
@OverRide--用于重写父类的方法,只限方法
@Derecation--代表已经过时的某个方法或类
@SuppressWarnings--是抑制编译器的警告
2、开发者自定义的Annotation注解
关键字为@interface,注解本质是一种特殊的接口。在底层实现上,所有定义的注解都会自动继承
java.lang.annotation.Annotation。
元注解[email protected],是专门修饰注解的注解
@Retention--是定义注解的生命力:
其中注解的生命周期有三种:1、仅存在java源文件中
2、被编译到class文件中
3、运行期被加载到Class对象中
@Retention注解使用一个枚举类型RetentionPolicy定义了这三个选择:
1.RetentionPolicy.SOURCE--被限定在Java源文件中,该注解不会参与编译也不会在运行期起任何作用。
2.RetentionPolicy.CLASS--被编译到Class文件中,编译器可以在编译时根据注解做一些。
处理动作
3. @Retentionolicy.RUNTIME--运行期通过反射得到注解信息。
其中@Retentionolicy.RUNTIME是我们常用的。
注解类型元素说明:1.访问修饰符只能是public,默认也是public
2.元素类型只能是基本数据类型、String、Class、注解类型、枚举、一维数组
3.()里面不能定义参数
4.defult代表默认值,必须和元素类型一致
5.如果没有给定默认值,后面必须设置值
三、 注解Annotation的使用
1.定义注解:
2. 定义学生类,使用Test 注解:
3.定义TestAnnotation类,利用反射获取注解信息
四、注解的优缺点
优点:1、JDK自带反射方式解析,不引入第三方库
2、直接配置在Java源代码中,所以不会引入额外的配置文件,项目管理和维
护变得简单
3、无论是定义、配置还是解析都是java代码,所以不存在配置时需要在不同
语法格式中切换的问题。
4、IDE支持度高,排查错误方便,提高开发效率
缺点:1、任何对配置、对定义的修改都需要改动Java代码,然后重新编译,重新打
包应用。
2、不是通用标准,只能在Java中使用。
注解与注释的区别:注释是存在java源代码当中,用于提高代码的可读性,对于编译和运行没有任何作用,不可以被编译器打包进入class文件;注解是一个标记,可以被编译器打包进入class文件。
XML和注解Annotation的区别:XML是一种可标记语言,大量用于数据传输;注解是jdk1.5中的一种新类型,是在java代码中的特殊标记。
XML与注解在配置这个应用场景中互补性是非常高的。XML的缺点就是注解的优点,反之亦然。这也是目前在JavaEE的各大框架中XML+Annotation配置流的原因。
总结
1、XML称为可扩展的标记语言。是一种利用标记和子标记描述数据的文本格式。
2、XML文档由申明、文档类型定义、注释、元素、属性、以及文本等构成。
3、XML的实体可以描述特殊符号和预定义符号,避免解析时的错误。CDATA标记中描述不被解析器解析的文本。
4、满足XML的语法规则的XML文档,称为格式良好的XML。有效的XML,不仅仅要满足XML的语法规则,还要满足DTD和Schema定义的元素规则。
5、XML解析技术有DOM解析、SAX解析两种。其中DOM解析是基于树结构的API,SAX解析是基于事件驱动的API。
6、JAXP是对应用程序隐藏了特定解析器的接口,它提供了访问DOM和SAX实现的抽象层机制。常用的有JDOM和DOM4J。
7、注解Annotation是一种元数据形式,属于java中的一种数据类型。书写的位置被固定为类、方法、变量、参数和包的申明部分。
8、注解Annotation可以用来生成文档,检查代码间依赖关系,帮助编译器作语法检查等。在开发和配置期间,注解信息可以在运行期进行获取。
9、注解语法支持两种注解:JDK自带的Annotation注解,开发者自定义的Annotation注解
10、JDK自带的Annotation注解,常用的有三个@Override(强行检测子类方法是否重写了父类方法)、@Deprecated(标记类或方法是过时的)、@SuppressWarnings(抑制编译器警告。)
11、自定义注解使用关键字@interface。注解本质是一种特殊的接口,在底层实现上,所有定义的注解都会自动继承java.lang.annotation.Annotation。
12、@Target元注解可以限定该注解的应用范围。
13、@Retention注解,是用来限定某个自定义注解的生命力。该注解申RetentionPolicy.RUNTIME时,可以在运行期间通过反射的方式获取信息。
14、XML可以是不同的平台进行数据传输的标准格式。注解只能在java中使用,所以,不能完全替代XML。
15、把与代码关联度不高,并且改动可能性大的配置写在XML文件中。专门配置java代码级别关联度的,以后改动度小的则使用注解Annotation
边栏推荐
猜你喜欢
2021 Huawei Cup Mathematical Modeling Contest E question - Ultra-Wideband (UWB) precise positioning problem under signal interference
Linux下mysql的彻底卸载
有效的括号【暴力、分支判断、哈希表】
这几年让你大呼惊人的AI应用,都离不开这项技术
【面经】被虐了之后,我翻烂了equals源码,总结如下
DOM —— 事件对象
lammps聚合物建模——EMC
怎么使用 smart_rtmpd 的纯 webrtc 功能?
【滤波器】最小均方(LMS)自适应滤波器
MATLAB file operations
随机推荐
UINIX 高级环境编程杂项之限制
MATLAB文件操作
Scala的安装和IDEA的使用(初入茅庐)
为什么float4个字节比long8个字节所表示的数值范围广
DOM - page rendering process
职工管理系统(SSM整合)
个人成长系列:好问题清单
js电梯导航基础案例
MYSQL5.7详细安装步骤
makefile——杂项
lammps学习(一)单晶硅纳米磨削
网络运维系列:Ubnt ER-X初始化和开启硬件NAT
XML技术
BOM(Browser Object Model)浏览器对象模型相关概念
DOM —— 事件代理
只出现一次的数字||| —— 哈希映射、异或位运算+分治思想
网络运维系列:二级域名启用与配置
【时间序列模型】AR模型(原理剖析+MATLAB代码)
Servlet 技术1
MATLAB中dist与pdist、pdist2的区别与联系