Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker 诊断工具


Spring Boot 启动后首次请求比较慢

Spring Boot Tomcat 评论 1 大约 538 字

现象

Spring Boot内置Tomcat容器启动后的第一次请求特别慢,第二次之后就正常了。

日志

INFO [nio-8080-exec-1] o.a.c.c.C.[.[.[/]         : Initializing Spring DispatcherServlet 'dispatcherServlet'
INFO [nio-8080-exec-1] o.s.w.s.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
INFO [nio-8080-exec-1] o.s.w.s.DispatcherServlet : Completed initialization in 180 ms

原因

Tomcat的请求解析分发器DispatcherServlet的初始化工作花了180ms,比较耗时。

解决方法

默认DispatcherServlet的加载时机是懒加载,即第一次请求时才调用initStrategies方法完成映射等初始化工作。

可以设置在启动阶段就加载,增加如下配置:

spring:
  mvc:
    servlet:
      load-on-startup: 1
阅读 3504 · 发布于 2022-01-02

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
  • fHLvlxbf 1楼
    e
    Chrome | Windows 10 2023-07-24
随便看看 换一批