2012-06-26 74 views
0

我遵循示例here。 我的ApplicationContext如下:Spring無法註冊轉換器

<bean id="conversionService" 
     class="org.springframework.context.support.ConversionServiceFactoryBean"> 
    <property name="converters"> 
     <set> 
      <bean class="org.mypackage.MyFilterConverter"/> 
     </set> 
    </property> 
</bean> 

我的轉換器看起來是這樣的:

public class MyFilterConverter implements Converter<String, HashMap<String, List<MyClass>>> { ... 

我的問題:當我

@Autowired 
private ConversionService conversionService; 

,並嘗試使用它時,conversionService僅具有默認的,不是MyFilterConverter。

我跟着堆棧跟蹤到

GenericConversionService.addConverter(GenericConverter converter) 

當我來自這個回電,不加我的轉換器。

任何想法?

感謝

- llappall

回答

0

如果使用<mvc:annotation-driven/>配置Spring MVC,然後它會創建一個內部和conversionService可能會改寫你的conversionService,覆蓋方法是更換<mvc:annotation-driven/>這個(如果您使用的是Spring 3.1):

<bean name="handlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
    <property name="webBindingInitializer"> 
     <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> 
      <property name="conversionService" ref="conversionService"></property> 
      <property name="validator"> 
       <bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/> 
      </property> 
     </bean> 
    </property> 
    <property name="messageConverters"> 
     <list> 
      <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> 
     </list> 
    </property> 
</bean> 

這應確保只有一個conversionService(您的)將會出現。