Spring - Jaxb2Marshaller语言 - 如何使用注释自动添加JAXB2类



我正在使用Spring 3.1。x和CXF 2.6.1用于REST服务。使用jaxbXmlProvider,如下所示。

<jaxrs:server ...
<jaxrs:providers>
   <ref bean="jaxbXmlProvider" />
</jaxrs:providers>
...
</jaxrs:server>

<bean id="jaxbXmlProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
     <property name="jaxbElementClassNames" ref="elements" /> 
</bean>

<util:list id="elements">
    <value>com.model.City</value>
    <value>com.model.Cities</value>
</util:list>

我想使用jaxb2-marshaller扫描包(com.model)中的所有pojo。

您可以调用提供类列表的另一个bean的方法,如:

<property name="jaxbElementClassNames" value="#{ myBean.classNamesFromPackage}"/>

配置myBean,将包名作为属性并具有getclassnamesfrommppackage方法:

<bean id="myBean" class="x.y.z.MyBean">
<property name="packageName" value="com.model" />
</bean>

在MyBean的getclassnamesfromppackage方法中,您可以使用如何从类路径中的Java包中读取所有类中建议的代码。

最新更新