XML和注解(Annotation)
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。
元注解--@Target,是专门修饰注解的注解
@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
XML和注解(Annotation)相关推荐
- 中文命名之Hibernate 5演示 - 使用注解(annotation)而非xml定义映射
前文中文编程:中文命名之Hibernate 4+MySQL演示最后留下了个Hibernate 5之后出现的问题, 于是在Hibernate社区提交了报告: Seemingly regression s ...
- @select注解_mybatis开发,你用 xml 还是注解?我 pick xml
最近在看公司项目时发现有的项目mybatis是基于注解开发的,而我个人的习惯是基于xml文件开发. 对于mybatis注解开发的原理理解不够,于是翻阅了部分源码,写下此文.主要介绍了mybatis开发 ...
- 让别人和自己看懂自己的程序代码?一文掌握Java单行多行、文档注释以及注解(Annotation)超详细的理解使用,IDEA注释注解快捷键和模板,提高程序代码更有可读性
文章目录 单行和多行注释 文档注释(Java特有) Annotation(注解)的理解 常见的Annotation示例 IDEA注释注解快捷键及模板 自定义 Annotation JDK 中的元注解 ...
- 注解Annotation的IoC:从@Autowired到@Component
注解Annotation的IoC:从@Autowired到@Component 2017-01-23 目录 1 什么是注解 2 不使用注解示例 2.1 com.springioc.animal.M ...
- 基于XML和注解的Spring Bean管理
文章目录 Spring工厂接口 BeanFactory接口 ApplicationContext 接口 Spring的bean管理的两种方式: 3 种实例化bean的方式(xml) 通过构造方法创建b ...
- (转)Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义
1.从Spring2.0以后的版本中,Spring也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以 ...
- Java中的注解(Annotation)处理器解析
Java中的注解(Annotation)是一个很神奇的东西,特别现在有很多Android库都是使用注解的方式来实现的.一直想详细了解一下其中的原理.很有幸阅读到一篇详细解释编写注解处理器的文章.本文的 ...
- spring中自定义注解(annotation)与AOP中获取注解___使用aspectj的@Around注解实现用户操作和操作结果日志
spring中自定义注解(annotation)与AOP中获取注解 一.自定义注解(annotation) 自定义注解的作用:在反射中获取注解,以取得注解修饰的类.方法或属性的相关解释. packag ...
- JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试
Spring框架学习路线 Spring的IOC Spring的AOP,AspectJ Spring的事务管理,三大框架的整合 Spring框架概述 什么是Spring? Spring是分层的Java ...
最新文章
- SCI至上只是结果,而不是原因
- error-2016-2-15
- android BLE Peripheral 手机模拟设备发出BLE广播 BluetoothLeAdvertiser
- 阿里云文件存储的高性能架构演进之路
- echarts中datazoom相关配置
- 小杜机器人线下店_阿里线下卖车已成事实,阿里造车还会远吗?
- php Tsocket read 0,thrift 返回 TSocket read 0 bytes 求助!!!!汗血宝马
- IS-IS详解(十三)——IS-IS 路由开销类型
- flstudio插件找不到_大家都用啥插件啊
- 小狸智能原创工具·AI伪原创API工具
- android 生成bks_在Android上实现SSL通信(二)
- android wifi 信道,WiFi不稳定经常断?手机WiFi信道小工具【图】_Android资讯_太平洋电脑网...
- C#基础知识(停止更新、移步博客园)
- 聊聊CVE漏洞编号和正式公开那些事
- Ramnit感染型病毒分析与处置
- 【大牛系列教学】如何准备面试?
- grafana graphite statsd搭建安装部署 实时监控_亲测成功
- 数据化决策-数据分析与高效经营1
- rust入门学习指南
- 【Apache Spark 】第 6 章Spark SQL 和数据集
热门文章
- js项目中常见util方法
- 离线安装金蝶Apusic中间件
- 北京市社会保险网上服务平台_城镇职工用户登陆_注册手机号更改
- JESD204接口调试总结——Xilinx JESD204B数据手册的理解
- 使用二维数组和函数解决八皇后问题(c++)
- 【Java开发】Spring Cloud 01 :微服务前提精要
- java做五子棋 视频_java swing实现五子棋小游戏项目源码附带视频指导运行教程...
- 动手学深度学习——softmax回归之OneHot、softmax与交叉熵
- 2022网络工程师下午大纲(附带华为交换机开局配置一本通)
- 深度学习DeepLearning