免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1719 | 回复: 0
打印 上一主题 下一主题

如何使用Spring中的Object/XML映射特性 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-15 16:35 |只看该作者 |倒序浏览
     Spring正在成为JavaEE社区内一个非常受欢迎的框架,Spring的最新版本的特性之一是它的Object/XML(O/X)映射支持,这个API支持开发人员在Java对象和XML之间来回转换。在本文中,您将学习如何使用Spring中的Object/XML映射特性并了解它的优势。
   
    Spring作为Java应用程序框架,已在Java开发社区中得到广泛使用,SpringSource近日发布了最新版本Spring 3.0.1版本。文章主要针对Spring中的Object/XM  3afdee6365244c32fc3426beb09f7be4.jpg (56.33 KB, 下载次数: 0)
4 天前 上传下载次数: 0
L映射,分析使用Object/XML映射的特性与优势。
   
    Spring以其流行的科技词汇而着名,比如“dependencyinjection(依赖项注入)”、“inversionofcontrol(控制反转)”和“aspect-orientedprogramming(面向方面编程)”等。它还支持Model-View-Controller(MVC)模式,很好地兼容用于数据访问的各种数据库驱动程序
   
    另外,它支持事务处理、单元测试、批处理和安全性。鉴于Spring的良好声誉和悠久历史,它通常是应用程序快速开发的首选框架。但是,最大的好处也许是:Spring是免费的。
   
    Object/XML映射是什么?
   
    Spring 3.0的一个新特性是O/XMapper.O/X映射器这个概念并不新鲜,O代表Object,X代表XML.它的目的是在Java对象(几乎总是一个plainoldJavaobject,或简写为POJO)和XML文档之间来回转换。
   
    例如,您可能有一个带有几个属性的简单bean,且您的业务需要将那个Java对象转换为一个XML文档。Spring的O/XMapper能够为您解决那个问题。如果反过来,您需要将一个XML文档转换为一个简单Javabean,Spring的O/XMapper也能胜任,有一点需要注意:SpringO/XMapper只是定义由流行的第三方框架实现的统一的界面。要利用Spring的O/X功能,您需要一个在Java对象和XML之间来回转换的实用程序。Castor就是这样一个流行的第三方工具,本文将使用这个工具。其他这样的工具包括XMLBeans、JavaArchitectureforXMLBinding(JAXB)、JiBX和XStream.
   
    编组和解组
   
    进行O/X映射时,您经常会看到编组(marshalling)和解组(unmarshalling)这两个术语。编组指将Javabean转换成XML文档的过程,这意味着Javabean的所有字段和字段值都将作为XML元素或属性填充到XML文件中。有时,编组也称为序列化(serializing)。
   
    如您所料,解组是与编组完全相反的过程,即将XML文档转换为Javabean,这意味着XML文档的所有元素或属性都作为Java字段填充到Javabean中。有时,解组也称为反序列化(deserializing)。
   
    使用Spring的O/XMapper的好处
   
    使用Spring的O/XMapper的一个最直接的好处是可以通过利用Spring框架的其他特性简化配置。Spring的bean库支持将实例化的O/X编组器注入(即前面提到过的“依赖项注入”)使用那些编组器的对象。重申一遍,这将加快应用程序开发和部署。
   
    遵循坚实的面向对象的设计实践,Spring Object/XML框架只定义两个接口:Marshaller和Unmarshaller,它们用于执行O/X功能,这是使用这个框架的另一个重大好处。这些接口的实现完全对独立开发人员开放,开发人员可以轻松切换它们而无需修改代码。例如,如果您一开始使用Castor进行O/X转换,但后来发现它缺乏您需要的某个功能,这时您可以切换到XMLBeans而无需任何代码更改。唯一需要做的就是更改Spring配置文件以使用新的Object/XML框架。
   
    使用Spring的Object/XML映射的另一个好处是统一的异常层次结构。Spring框架遵循使用它的数据访问模块建立的模式,方法是将原始异常对象包装到Spring自身专为O/XMapper建立的运行时异常中。由于第三方提供商抛出的原始异常被包装到Spring运行时异常中,您能够查明出现异常的根本原因。您也不必费心修改代码以捕获异常,因为异常已包装到一个运行时异常中。以下几个运行时异常扩展了基础异常
   
    XMLMappingException:GenericMarshallingFailureException、ValidationFailureException、MarshallingFailureException和UnmarshallingFailureException.
   
    一个简单的演示
   
    现在您已经了解了Spring的O/XMapper的背景和基础知识,可以检验它的使用方法了。在本文中,您首先创建一个简单的Spring应用程序,该程序独立于任何JavaEnterprise依赖项。然后,您创建一个简单的Java类,它访问Spring的配置文件来实例化该类并注入O/X依赖项。参见下载部分获取所有源代码文件(包括配置文件)的链接。
   
    编码
   
    首先应该注意Spring配置文件。清单1是应用程序用于执行编组和解组操作的配置文件。注意,这个文件必须在运行时位于类路径中,清单1.配置文件:
   
    <beansxmlnsbeansxmlns=“http://www.springframework.org/schema/beans
   
    xmlnssi=“www.justep.com/solutions.html
    [url]http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”>
   
    <beanidbeanid=“oxmExample”class=“com.xyz.OXMExample”>
   
    <propertynamepropertyname=“marshaller”ref=“castorMarshaller”/>
   
    <propertynamepropertyname=“unmarshaller”ref=“castorMarshaller”/>
   
    </bean>
   
    <beanidbeanid=“castorMarshaller”class=“org.springframework.oxm.castor.CastorMarshaller”>
   
    <propertynamepropertyname=“mappingLocation”value=“classpath:mapping.xml”/>
   
    </bean>
   
    </beans>
   
    如您所见,这个配置文件只定义了两个bean,这是为了简便起见。第一个bean是用于执行演示的类:com.xyz.OXMExample.与该类关联的两个属性使用依赖项注入,它们都使用castorMarshallerbean的一个实例注入。这是在Spring框架中定义bean的标准方法,经验丰富的Spring开发人员很快就会意识到这一点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP