我正在使用JAXB和Spring MVC编写RESTful Web服务。在我的Spring上下文中为我处理了许多有用的东西,但是它注册了自己的JAXB marshaller,我找不到添加属性的方法(比如NamespacePrefixMapper或schema位置)。
有没有办法覆盖在其中配置的默认编组器或设置属性?
答案 0 :(得分:1)
<mvc:annotation-driven>
本质上是一个“宏”,它注册了一堆固定的配置选项。您可以在相当密集的AnnotationDrivenBeanDefinitionParser
类的源代码中看到它的作用。
这里特别感兴趣的是它注册了AnnotationMethodHandlerAdapter
并将一系列组件注入其中,其中一些是你需要的,其中很多都是你不需要的。
<mvc:annotation-driven>
在自定义方面没有提供太多帮助,所以如果你想改变它的作用,你需要从你的上下文中删除它,并声明你自己的AnnotationMethodHandlerAdapter
,按照你想要的方式配置。
JAXB marshaller被注入messageConverters
的{{1}}属性。