2014-09-12 64 views
0

我正試圖在SpringMVC中實現轉換器,並將其配置爲像 How to configure Spring ConversionService with java config? 和一些奇怪的事情發生。WebMvcConfigurerAdapter和註解驅動的衝突?

ApplicationConfiguration.java

@Configuration 
@EnableWebMvc 
public class ApplicationConfiguration extends WebMvcConfigurerAdapter { 

    @Override 
    public void addFormatters(FormatterRegistry formatterRegistry) { 
     formatterRegistry.addConverter(new StringToFoo()); 
     formatterRegistry.addConverter(new FooToString()); 
    } 
} 

我有一個形式一個jsp到一個Foo對象傳遞給控制器​​。 而我有<mvc:annotation-driven/>和組件掃描在xml中。

事實證明,我引用的代碼在初始化執行,但是從JSP來傳遞控制器時,轉換器不叫,

當我刪除註釋驅動,一切正常,轉換器被正確調用我控制器。但是,在將WebMvcConfigurerAdapter添加到項目之前,我必須將註釋驅動到init servlet。

所以我的問題:

註解驅動做什麼? WebMvcConfigurerAdapter(或使用的註釋)與註釋驅動有衝突嗎?

回答

0

@EnableWebMvc與註釋驅動相同,只是在java中而不是xml中。當你有兩個似乎它給予註釋驅動的優先順序,因此轉換器沒有註冊。也看到這個問題EnableWebMvc annotation meaning