如何配置mvc:annotation-driven使用的Jaxb2Marshaller

时间:2011-01-10 09:26:03

标签: java spring spring-mvc jaxb

我正在使用JAXB和Spring MVC编写RESTful Web服务。在我的Spring上下文中为我处理了许多有用的东西,但是它注册了自己的JAXB marshaller,我找不到添加属性的方法(比如NamespacePrefixMapper或schema位置)。

有没有办法覆盖在其中配置的默认编组器或设置属性?

1 个答案:

答案 0 :(得分:1)

<mvc:annotation-driven>本质上是一个“宏”,它注册了一堆固定的配置选项。您可以在相当密集的AnnotationDrivenBeanDefinitionParser类的源代码中看到它的作用。

这里特别感兴趣的是它注册了AnnotationMethodHandlerAdapter并将一系列组件注入其中,其中一些是你需要的,其中很多都是你不需要的。

<mvc:annotation-driven>在自定义方面没有提供太多帮助,所以如果你想改变它的作用,你需要从你的上下文中删除它,并声明你自己的AnnotationMethodHandlerAdapter,按照你想要的方式配置。

JAXB marshaller被注入messageConverters的{​​{1}}属性。