我有一个使用 XML 作为主要配置的 Spring MVC 项目,包括注册 JAXB 类。我现在将它制作成一个多模块应用程序,并有一个单独的项目来创建一个可选的 JAR 文件。JAR 文件将 @Controller 和 @Service 类之类的东西添加到主 MVC 项目中,但主项目不依赖于该 JAR,我想保持这种方式,所以我不想自定义应用程序主项目中的上下文 xml,以添加对可选 JAR 的支持;我只想将该 JAR 添加到类路径中。
在那个可选的 JAR 中,我成功地使用了一个带有 @Configuration 注释的类在我的应用程序上下文中创建新的 bean,但是我现在需要扩展一个现有的 bean,以添加新的 JAXB 注释类和包含 ObjectFactory 类的包等.
我看不到如何做到这一点...
我试图像这样通配编组器包:
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="packagesToScan" value="com.app.xml.**"/>
</bean>
但这似乎不起作用,因为我得到:
javax.servlet.ServletException: Unable to locate object to be marshalled in model
我可以采取另一种方法吗?理想情况下,我想在我的 @Configuration 类中有一个方法,它只是将新类添加到现有的 Jaxb2Marshaller bean...
或者更好的是,找到一种方法让 Spring 在启动时检测所有带有 JAXB 注释的类......
我通过 Spring OXM 使用 Spring 3.2.1 和 JAXB2