WebMvcConfigurerAdapter和注释驱动的冲突?

时间:2014-09-12 18:23:27

标签: java spring-mvc annotations

我正在尝试在SpringMVC中实现转换器并将其配置为 How to configure Spring ConversionService with java config? 并且发生了一些奇怪的事情。

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对象传递给控制器​​。 我在xml中有<mvc:annotation-driven/>和组件扫描。

事实证明我引用的代码是在init执行的,但是当从jsp传递到控制器时没有调用转换器,

当我删除注释驱动时,一切正常,转换器在我的控制器中被正确调用。但是,在我将WebMvcConfigurerAdapter添加到proejct之前,我必须将注释驱动包含到init servlet中。

所以我的问题:

注释驱动有什么作用? WebMvcConfigurerAdapter(或使用的注释)是否与注释驱动冲突?

1 个答案:

答案 0 :(得分:0)

@EnableWebMvc与注释驱动相同,它只是在java而不是xml中。当你同时拥有它时,它似乎给出了注释驱动的优先级,因此转换器没有注册。另请参阅此问题EnableWebMvc annotation meaning