17.7 JiBX

JiBX 框架提供的解决方案思路与 Hibernate 对于 ORM 的解决方案思路类似:通过一个绑定定义指定了你的 Java 对象与 XML 文件之间互相转换的规则。在准备好绑定并编译了类文件后,一个 JiBX 编译器将会对编译好的类文件进行增强,在其中加入一些辅助代码,并自动添加用于处理在类实例与 XML 文档之间相互转换的操作代码。

请参考 JiBX官方网站 来了解更多信息。Spring 对于框架的集成代码则都在 org.springframework.oxm.jibx 包下面。

17.7.1 JibxMarshaller

JiBXMarshaller 类同时实现了 Marshaller 和 Unmarshaller 接口。它需要使用者设置编组的目的类的类名才能正确工作。设置类名的属性是 targetClass。另外还有一个可选属性是 bingdingName,用户可以通过这个属性配置绑定名。接下来的示例中,我们将绑定 Flight 类:

  1. <beans>
  2. <bean id="jibxFlightsMarshaller" class="org.springframework.oxm.jibx.JibxMarshaller">
  3. <property name="targetClass">org.springframework.oxm.jibx.Flights</property>
  4. </bean>
  5. ...
  6. </beans>

一个 JibxMarshaller 只能处理一个目的类与 XML 的相互转换,如果你需要编组多个类,你必需配置相应数量的 JibxMarshallers bean,然后在 targetClass 里面指定相应各个类的类名。

17.7.2 基于 XML 的配置

jibx-marshaller 标签配置了 org.springframework.oxm.jibx.JibxMarshaller 的实例。以下是一个示例:

  1. <oxm:jibx-marshaller id="marshaller" target-class="org.springframework.ws.samples.airline.schema.Flight"/>

标签的可用属性如下:

属性 描述 是否必需
id 编组器的id no
target-class 此编组器所对应的目标类 yes
bindingName 此编组器使用的绑定名 no