我正在使用JAXB和Spring MVC编写一个RESTful Web服务。在我的Spring上下文中,我为我处理了大量有用的东西,但它注册了它自己的JAXB编组器,并且我找不到添加属性的方法(如NamespacePrefixMapper或模式位置)。如何配置mvc使用的Jaxb2Marshaller:注解驱动
有没有办法来覆盖默认的编码器配置或设置属性呢?
我正在使用JAXB和Spring MVC编写一个RESTful Web服务。在我的Spring上下文中,我为我处理了大量有用的东西,但它注册了它自己的JAXB编组器,并且我找不到添加属性的方法(如NamespacePrefixMapper或模式位置)。如何配置mvc使用的Jaxb2Marshaller:注解驱动
有没有办法来覆盖默认的编码器配置或设置属性呢?
<mvc:annotation-driven>
本质上是一个“宏”,它记录了一堆固定的配置选项。你可以看到它在相当密集的AnnotationDrivenBeanDefinitionParser
类中的作用。
这里特别感兴趣的是它注册了一个AnnotationMethodHandlerAdapter
,并将一系列组件注入其中,其中有些组件需要使用,其中许多组件不会。但是,如果你想改变它的功能,你需要将它从你的上下文中删除,然后声明你自己的AnnotationMethodHandlerAdapter
,按照你想要的方式进行配置。
JAXB编组人员被注入到AnnotationMethodHandlerAdapter
的messageConverters
财产中。
我有点失望,这是这种情况。你可以配置你自己的conversionService,但是你不能配置你的messageConverters? – rjsang 2011-01-12 10:05:50