代码之家  ›  专栏  ›  技术社区  ›  Honza

未激活WebMvcAutoConfiguration

  •  0
  • Honza  · 技术社区  · 6 年前

    我有一个相当简单的spring引导应用程序,在调试缓存破坏资源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)
    

    经过几个小时的调试,并将一个空的应用程序行为与我的进行比较,我发现的唯一区别是我的应用程序中有更多的mvcconfiguer实例。即:

    • 我的自定义webmvcconfiguer(用于cors和其他东西)
    • Spring JPA配置程序

    我希望这些事情能够并肩共存,但显然还有别的事情要做。

    我的问题是如何找到这个丢失的DelegatingWebMvcConfiguration bean的源,它正在禁用WebMvcAutoConfiguration?

    0 回复  |  直到 6 年前
        1
  •  1
  •   Michel Néron    5 年前

    我只是对SpringBoot 2.1.3.RELEASE有这个问题,它比anwser早了很长一段时间,但也许可以帮助其他人。

    解决方案就是删除@EnableWebMvc。

    如果不启用WebMVC,则WebMvcAutoConfiguration为take,它具有静态配置:

    @Configuration
    public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration
    

    也许这有其他影响,但我只是开始我的项目,我无法核实。