Spring Boot迁移后JS资源请求长时间停滞的排查求助
Spring Boot迁移后JS资源请求停滞排查思路
检查静态资源映射配置
- Spring Boot默认静态资源路径为
classpath:/static/、classpath:/public/等,确认JSP中引用的JS路径是否与Spring Boot的静态资源映射规则匹配,排查是否存在路径重写、转发逻辑导致的请求阻塞。 - 检查是否自定义了
WebMvcConfigurer的addResourceHandlers方法,确认配置是否合理,比如是否设置了不合理的缓存策略或资源拦截规则。
- Spring Boot默认静态资源路径为
排查请求阻塞根源
- 使用JVM监控工具(如VisualVM、JConsole)查看线程状态,重点关注处理静态资源的Tomcat线程,是否存在IO阻塞、锁等待或数据库操作耗时过长的情况。
- 开启Spring Boot请求DEBUG日志,配置
logging.level.org.springframework.web=DEBUG,查看JS请求的完整处理链路,排查是否有异常拦截器、过滤器在进行耗时处理。
优化Tomcat相关配置
- 除了
server.tomcat.threads.max,还需检查server.tomcat.accept-count(连接队列容量)、server.tomcat.max-connections(最大连接数),确认是否因连接队列已满导致请求排队停滞。 - 检查是否启用了Tomcat压缩配置
server.compression.enabled=true,排查压缩参数是否合理,避免因压缩处理耗时过长拖慢资源加载。
- 除了
排查静态资源缓存与完整性
- 检查Spring Boot的静态资源缓存配置
spring.web.resources.cache.cachecontrol,确认缓存时间、缓存机制是否正常,避免因缓存异常导致请求等待。 - 验证JS文件是否在打包过程中被损坏(比如Maven resources插件处理异常),或者文件体积过大未做分片加载,导致传输耗时增加。
- 检查Spring Boot的静态资源缓存配置
排查过滤器/拦截器干扰
- 检查项目中自定义的过滤器、拦截器,确认是否对静态资源请求执行了不必要的逻辑(如权限校验、冗余日志),导致请求处理耗时增加。
- 临时禁用所有自定义过滤器/拦截器,测试JS请求是否恢复正常,逐步定位问题组件。
内容的提问来源于stack exchange,提问作者Lia
相关产品推荐
相关产品推荐

