我正在使用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