我有一个使用XML作为主配置的Spring MVC项目,包括注册JAXB类。我现在把它变成一个多模块应用程序,并有一个单独的项目来创建一个可选的JAR文件。 JAR文件将类似@Controller和@Service类的东西添加到主MVC项目中,但主项目不依赖于该JAR,并且我想保留它,所以我不想自定义应用程序主项目中的context xml,以便添加对可选JAR的支持;我只是想将该JAR添加到类路径中。混合和扩展Spring XML配置
在那个可选的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 3.2.1和JAXB2通过Spring OXM
而不是使用通配符使用分隔的多个包名通过逗号。因为它不识别通配符和属性“packagesToScan”接受字符串数组。 – 2013-03-14 11:45:08
是的,这正是我试图避免的,因为这意味着我从我的主applicationContext.xml创建了对这些包的依赖关系。我正在调查其他方法 – 2013-03-14 11:49:20