You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Spring Boot 2.0.0.RC2遇No ServletContext set异常求助

解决Spring Boot 2.0.0.RC2升级中的No ServletContext set异常

我之前升级到这个版本时也踩过一模一样的坑,折腾了好一阵才调试出问题根源,给你详细拆解下:

升级Spring Boot到2.0.0.RC2版本时,抛出No ServletContext set异常

问题根源

经过断点跟踪Spring上下文的加载流程,发现核心问题是MVC配置类EnableWebMvcConfiguration加载时机过早——在Servlet容器还没完成初始化、ServletContext还没被注入到Spring上下文的时候,这个配置类就开始初始化依赖ServletContext的组件,自然就会触发找不到ServletContext的异常。

可行的解决方案

  • 避免手动提前触发Web MVC配置:如果你的项目里有自定义配置类手动添加了@EnableWebMvc或者直接依赖EnableWebMvcConfiguration,尽量交给Spring Boot的自动配置主导加载顺序,不要在非Web环境的配置中提前触发它的初始化。
  • 延迟依赖Bean的初始化:对于需要ServletContext的自定义Bean,加上@Lazy注解让它们延迟到第一次被使用时再初始化,或者用@ConditionalOnWebApplication注解限制只有Web环境就绪后才加载这些Bean。
  • 调整配置类加载顺序:如果必须自定义Web MVC配置,可以给你的配置类加上@AutoConfigureAfter(DispatcherServletAutoConfiguration.class),确保它在Spring Boot的DispatcherServlet自动配置完成之后再加载,此时ServletContext已经准备就绪。

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:07:21