Spring Boot毫无疑问是Java后端开发的第一大框架,基于Spring Boot有着一套完整的工具链,各种各样的starter。对于日常业务开发而言,可以说是轮子很全。
但随着云原生时代的到来,Spring Boot应用或者说是Java应用却暴露出了一些问题,其中比较突出的有:
- 启动慢
- 应用内存占用多
其中启动慢的主要原因:代码编译。
当然对于Spring Boot来说,Bean实例注入也会花费一定的时间,但花费时间相比编译会小的多。大家可以通过开启延迟初始化试试。
spring: main: lazy-initialization: true
Spring Boot 2.2开始支持。
个人本地开启延迟初始化之后,启动能快了1~2秒,整个启动时间10秒左右。
测试机配置:i7-6500U 2.50@GHz 内存:16G
内存占用多主要是内存占用后不会归还操作系统,这个正在逐步改善:
- G1 JDK12及之后 已支持
- ZGC JDK13及之后 已支持
由于Java语言的