当前位置:网站首页>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
边栏推荐
猜你喜欢
随机推荐
【Anaconda】一行语句解决Spyder启动问题
VLAN原理
二、QT界面开发--新建C语言工程
Golang学习(三十五) go 连接redis
DOM - Event Mechanism and Event Chain
golang八股文整理(持续搬运)
RTMP, RTSP, SRT 推流和拉流那些事
加载事件的用法
test3
GC垃圾收集器G1
flask获取post请求参数
MATLAB文件操作
nodejs 的下载安装与环境配置
MATLAB file operations
JVM常量池详解
smart rtmpd web 接口说明
CSV file with the data read and write 】 【 XLS/XLSX file
DOM - page rendering process
【频域分析】频谱泄露、频率分辨率、栅栏效应
Homebrew的简单介绍