快速业务通道

体验Spring的Object/XML映射支持 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
n、ValidationFailureException、MarshallingFailureException 和 UnmarshallingFailureException。

一个简单的演示

现在您已经了解了 Spring 的 O/X Mapper 的背景和基础知识,可以检验它的使用方法了。在本文中,您首先创建一个简单的 Spring 应用程序,该程序独立于任何 Java Enterprise 依赖项。然后,您创建一个简单的 Java 类,它访问 Spring 的配置文件来实例化该类并注入 O/X 依赖项。参见 下载 部分获取所有源代码文件(包括配置文件)的链接。

体验Spring的Object/XML映射支持(2)

时间:2011-02-05 IBM Brian M. Carey

编码

首先应该注意 Spring 配置文件。清单 1 是应用程序用于执行编组和解组操作的配置文件。注意,这个文件必须 在运行时位于类路径中。

清单 1. 配置文件

<beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">    <bean id="oxmExample" class="com.xyz.OXMExample">      <property name="marshaller" ref="castorMarshaller" />      <property name="unmarshaller" ref="castorMarshaller" />    </bean>    <bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller">     <property name="mappingLocation" value="classpath:mapping.xml" />    </bean> </beans>

如您所见,这个配置文件只定义了两个 bean,这是为了简便起见。第一个 bean 是用于执行演示的类:com.xyz.OXMExample。与该类关联的两个属性使用依赖项注入,它们都使用 castorMarshaller bean 的一个实例注入。这是在 Spring 框架中定义 bean 的标准方法,经验丰富的 Spring 开发人员很快就会意识到这一点。

另一个 bean 是 castorMarshaller bean 本身,它是 org.springframework.oxm.castor.CastorMarshaller 的一个实例,org.springframework.oxm.castor.CastorMarshaller 主要用于包装 Castor 框架。如前所述,使用 Spring 的 O/X 功能需要使用一个第三方 O/X 框架。在本例中,这个第三方产品是 Castor。还要注意,有一个属性使用 castorMarshaller 定义,那是用于在 Java bean 和 XML 输出之间来回映射的映射文件。这个文件称为 mapping.xml,它必须 在运行时位于类路径中。我将稍后解释 mapping.xml 文件的内容。

清单 2 实际执行 O/X 映射器的代码的部分清单。如您所见,它是一个简单的 Java 类。

清单 2. OXMExample 类(节选)

public class OXMExample {    private static final String FILE_NAME = "simplebean.xml";    private SimpleBean simpleBean;    private Marshaller marshaller;    private Unmarshaller unmarshaller;    public void setMarshaller(Marshaller marshaller) {      this.marshaller = marshaller;    }    public void setUnmarshaller(Unmarshaller unmarshaller) {      this.unmarshaller = unmarshaller;    }    public void saveSimpleBean() throws IOException {      FileOutputStream os = null;      try {        os = new FileOutputStream(FILE_NAME

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号