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

时间:2013-04-11 18:27:47

标签: spring rest cxf

我使用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来扫描包中的所有POJOS(com.model)。任何使用帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

在MyBean的getClassNamesFromPackage方法中,您可以使用How do I read all classes from a Java package in the classpath?中建议的代码。