У меня довольно простое приложение с весенней загрузкой, и после отладки проблем с генерацией URL ресурса, уничтожающего кэш, обнаружилось, что WebMvcAutoConfiguration не запускается при запуске приложения.
Вот соответствующий вывод журнала:
WebMvcAutoConfiguration:
Did not match:
- @ConditionalOnMissingBean (types: org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; SearchStrategy: all) found beans of type 'org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport' org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration (OnBeanCondition)
Matched:
- @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet', 'org.springframework.web.servlet.config.annotation.WebMvcConfigurer'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
- found ConfigurableWebEnvironment (OnWebApplicationCondition)
После отладки в течение нескольких часов и сравнения поведения пустого приложения с моим, единственное различие, которое я обнаружил, состоит в том, что существует больше MvcConfigurerэкземпляры в моем приложении.А именно:
- мой пользовательский WebMvcConfigurer (для cors и прочего)
- Spring-JPA Configurer
- Spring-Data Configurer
IЯ бы сказал, что эти вещи могли бы сосуществовать бок о бок, но, очевидно, в игре есть что-то еще.
Теперь я в растерянности, потому что потратил часы на отладку этой проблемы.
Мой вопрос заключается в том, как найти источник этого недостающего компонента DelegatingWebMvcConfiguration, который отключает WebMvcAutoConfiguration?