XML解析神器JAXB
阅读引导:
1、xml配置文件的读取使用,不要再用dom4j、dom、SAX等老掉牙的实现了。
2、OXM框架实现:JAXB——Java architecture for xml binding,spring等都有支持实现。
3、为自己工作,为自己的系统工作,做自己的老板,形成正循环:打磨当前工作的核心关键能力——>高效能工作——>更多时间打磨自己的系统——>更高效能工作——>打磨下个层次工作的核心关键能力……
4、核心竞争力,是指你拥有的(独特的)知识经验组合,经过你思维逻辑的组织梳理,在实践中产生无可替代的价值。打造自己的TMS系统(T:专业技术;M:沟通管理、S:行业解决方案),利用复利效应,让系统为自己工作。
由于XML规范,其可读性强、结构化展示,是目前近乎所有应用开发中都要使用的协议,尤其是一些配置文件。
例如spring的bean的xml配置声明、logback的日志配置文件logback.xml等。
而很多时候,在开发过程中,一些固定配置也会放到xml中(另外一些会放到properties文件中,另外一篇论述)。
问题是:很多人一看到xml文件,就上网搜索xml解析方法,然后搜索出来很多dom4j、SAX解析器的使用、比较。
1 概念迁移 : 从ORM 到OXM
做应用开发的,应该都熟悉ORM规范(对象关系映射),或者常用的框架Mybatis、Hibernate等,用来将Java对象和关系型数据库的数据进行映射。
ORM框架将原本开发人员需要手工写的内容全部封装。
同样的,有没有类似框架?使得我们不需要再去关注xml的结构、节点等解析?
有。
OXM的概念,就是指对象与xml映射。我们忽略映射(xml解析过程),直接使用映射后的Java对象。
或者说,对于xml的序列化以及反序列化。
而OXM框架实现,比较推荐的就是:spring的JAXB
2 Spring 的 JAXB实现
JAXB,Java architecture for xml binding,使得开发人员不需要关心xml的解析过程,只关注XML元素与Java属性的映射关系即可。
spring配置,指定使用OXM的JAXB实现
<oxm:jaxb2-marshaller id="marshaller">
<oxm:class-to-be-bound name="com.sz.jaxb.RequestMsg"/>
</oxm:jaxb2-marshaller>
xml文件