我之前一直在使用WebMvcConfigurerAdapter。由于无法通过getInterceptors()方法获取所有已注册的拦截器,因此我转而使用了WebMvcConfigurationSupport,它具有很多默认注册的Spring Bean,如ContentNegotiationManager、ExceptionHandlerExceptionResolver等。
现在我意识到,默认情况下并没有注册非常方便的DomainClassConverter(它通过使用CrudRepository将域类id转换为域类对象),尽管我在WebConfig类上使用了@EnableSpringDataWebSupport注解。
当我像这样显式地定义这个bean时,它就可以正常工作。
@EnableSpringDataWebSupport
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Bean
public DomainClassConverter<?> domainClassConverter() {
return new DomainClassConverter<FormattingConversionService>(mvcConversionService());
}
}
为什么EnableSpringDataWebSupport与WebMvcConfigurationSupport不兼容?