XML和反射的学习心得

写前思考

XML全称为Extensible Markup Language,意思是可扩展的标记语言。XML语法上和HTML比较相似,但是HTML中的元素是固定的,而XML的标签是可以由用户自定义的。

个人认为XML文件的存在如可以用来存储一些配置信息,我们在写完一个java程序后,程序里面会有很多配置信息,如JDBC里面的各种服务器端口、USERNAME、PASSword等等,通过XML我们只需要简单的修改XML文件就可以实现这些配置的更改,从而不用再去修改java文件。有一篇博客写了一些对XML文件在java项目中的作用理解,笔者认为写的很具体,但是鉴于知识面还没有太深,不太了解spring等框架,因此心得体会还没有很深,但是仍然可以作为参考。博客地址如下

https://www.cnblogs.com/yefengCrazy/p/5636661.html

XML的语法不作详细介绍,网上资料很多,主要了解XML有两种约束方法,约束是用来规范XML文档的,以便于我们更好的解析XML文件,主流是两种约束方法,一种为DTD,另外一种为Schema。值得注意的是在编写这两种规范时都应在开头添加约束方法的引入。

XML解析概述:

当我们将数据存储在XML后,我们就希望通过程序获得XML的内容,如果我们使用java基础所学的IO流只是是可以完成的,不过你需要非常繁琐的操作才可以完成,所以我们需要使用解析器来完成这一项操作。

开发中常用的解析方式有三种

1.DOM:要求解析器把整个XML文档装在到内存,并解析成一个Document对象。

2.SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行都将出发对应的事件。

3.PULL:Android内置的XML解析方式。

常见的解析开发包:JAXP、JDom、jsoup、dom4j

使用dom4j

dom4j必须使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档的根元素。

常用API如下:

XML和反射的学习心得

反射

JAVA反射机制是在运行状态中,对于任意一个类都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用它的仍以一个方法和属性。反射的作用主要是为了后期程序的可扩展,使用反射可以在运行时对类class、构造方法Constructor、普通方法Method、字段Field进行操作。反射的详细操作笔者整理如下,作基本了解掌握。

XML和反射的学习心得XML和反射的学习心得

解析XML并执行反射的一个示例:

public void demo() {

//1.加载配置文件,并获得dcument对象

SAXReader saxReader = new SAXReader();

Document document = saxReader.read(new File('XML文件地址'));

//2.获得根元素

Element rootElement = document.getRoolElement();

//3.获得第一个<servlet>子元素

Element servletElement = rootElement.element(‘servlet’);

//4.获得字符串实现类<servlet-class>的值

String servletClass = servletElement.elementText('servlet-class');

//5.获得字符串实现类实例

Class clazz = Class.forName(servletClass);

MyServlet myServlet = (MyServlet)clazz.newInstance();

//6.执行对象的方法

myServlet.method();//或  clazz.getMethod(‘method’).invoke(myServlet);

}