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

rjs*_*ang 5 java spring spring-mvc jaxb

我正在使用JAXB和Spring MVC编写RESTful Web服务.在我的Spring上下文照顾了很多有用的东西,对我来说,却注册了自己的JAXB编组,我无法找到一种方法将属性添加到它(如NamespacePrefixMapper或模式位置).

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

ska*_*man 1

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

这里特别有趣的是,它注册了 aAnnotationMethodHandlerAdapter并向其中注入了一系列组件,其中一些是您需要的,其中许多是您不需要的。

<mvc:annotation-driven>不过,它并没有提供太多的自定义方式,因此如果您想更改它的功能,您需要将其从上下文中删除,并声明您自己的AnnotationMethodHandlerAdapter,按照您想要的方式配置。

JAXB 编组器被注入到messageConverters的属性中AnnotationMethodHandlerAdapter