我已经使用 WebMvcConfigurerAdapter 一段时间了。由于我无法使用 getInterceptors() 方法获取所有已注册的拦截器,因此我已切换到 WebMvcConfigurationSupport,它有很多默认注册的 Spring Bean,如 ContentNegotiationManager、ExceptionHandlerExceptionResolver usw。
现在我意识到,尽管我在 WebConfig 类上使用了注释 @EnableSpringDataWebSupport,但默认情况下并未注册非常方便的 DomainClassConverter(它通过使用 CrudRepository 将域类 id 转换为域类对象)。
当我像这样显式定义这个 bean 时,它就可以工作了。
@EnableSpringDataWebSupport
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Bean
public DomainClassConverter<?> domainClassConverter() {
return new DomainClassConverter<FormattingConversionService>(mvcConversionService());
}
}
但为什么 EnableSpringDataWebSupport 不能与 WebMvcConfigurationSupport 一起使用?
它看起来像扩展的配置类WebMvcConfigurationSupport
直接遭受SPR-10565 https://jira.spring.io/browse/SPR-10565。至少对我来说,解决方案是从DelegatingWebMvcConfiguration
反而。
如果您要覆盖配置类中的各个回调,您可能还需要调用超类的回调实现,以确保所有回调都得到正确处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)