4

Я некоторое время использовал WebMvcConfigurerAdapter. Поскольку я не мог получить все зарегистрированные перехватчики с помощью метода getInterceptors(), я переключился на WebMvcConfigurationSupport, у которого много зарегистрированных по умолчанию Spring Beans, таких как ContentNegotiationManager, ExceptionHandlerExceptionResolver usw.Аннотация @EnableSpringDataWebSupport не работает с WebMvcConfigurationSupport?

Теперь я понял, что очень удобный DomainClassConverter (который преобразует идентификаторы класса домена в объекты класса домена с использованием CrudRepository) по умолчанию не зарегистрирован, хотя я использую аннотацию @EnableSpringDataWebSupport в своем классе WebConfig.

Когда я определяю этот компонент явно так, он работает тогда.

@EnableSpringDataWebSupport 
@Configuration 
public class WebConfig extends WebMvcConfigurationSupport { 
    @Bean 
    public DomainClassConverter<?> domainClassConverter() { 
     return new DomainClassConverter<FormattingConversionService>(mvcConversionService()); 
    } 
} 

Но почему EnableSpringDataWebSupport не работает с WebMvcConfigurationSupport?

ответ

2

Похоже, что классы конфигурации, которые расширяются WebMvcConfigurationSupport, страдают от SPR-10565. Решение, по крайней мере для меня, заключается в том, чтобы вместо этого перейти от DelegatingWebMvcConfiguration.

Если вы переопределяете отдельные обратные вызовы в своем классе конфигурации, вы, скорее всего, захотите также назвать реализацию обратного вызова суперкласса, чтобы убедиться, что все обработано правильно.

Смежные вопросы