我想补充一点
Converter
s通过
FormattingConversionService
,这需要有一个@Configuration类扩展
WebMvcConfigurationSupport
:
@Configuration
public class WebAutoConfig extends WebMvcConfigurationSupport {
@Override
public FormattingConversionService mvcConversionService() {
FormattingConversionService fcs = super.mvcConversionService();
// add Enum converter in order to accept enums
// case insensitively over Rest:
fcs.addConverter(
String.class,
MyEnum.class,
new EnumCaseInsensitiveConverter<>( MyEnum.class )
);
return fcs;
}
}
boot-starter
因此,不需要在所有项目中重复代码。
问题是,当这个@配置迁移到启动项目时,然后
-
mvcConversionService()
未执行,以及
-
RESTController路由已中断(即没有正确映射任何请求)。
如何解决这个问题?注释使用
这不是一个硬性要求。从代码摘录中可以看出,最终目标是将某些枚举配置为由rest控制器不区分大小写地接受。
编辑
@Configuration
与相同包中的类
WebAutoConfig.java
正在执行。认为问题与配置类如何扩展有关
WebMVC配置支持
(或
WebMvcConfigurerAdapter
因此)正在从自动配置中处理。
编辑2
:到目前为止,我设法开始工作的唯一方法是从using项目扩展config类:
import myautoconfproject.autoconfigure.WebAutoConfiguration;
@Configuration
public class WebConfiguration extends WebAutoConfiguration {
}
但这不再是真正的自动配置。