我正在尝试在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(或使用的注释)是否与注释驱动冲突?
答案 0 :(得分:0)
@EnableWebMvc与注释驱动相同,它只是在java而不是xml中。当你同时拥有它时,它似乎给出了注释驱动的优先级,因此转换器没有注册。另请参阅此问题EnableWebMvc annotation meaning