你们springboot版本是多少?你知道springboot3.0吗?相比2.0有什么优点?
Spring Boot 3.0 启动优化及相关技术解析
一、Spring Boot 3.0 启动优化分析
简单原理阐述:在 Spring Boot 3.0 中,程序启动时不再需要扫描文件中的 bean。这是因为在编译时已经进行了 bean 扫描,所以启动时无需再进行文件扫描来查找 bean,从而实现了更快的启动速度。
优化步骤:
- springboot 插件在编译时会执行一个 main 方法;
- 扫描项目中的启动类、bean,生成一对一的文件以及 springboot 所需的其他文件;
- 当程序启动时,会运行上一步生成的启动类;
- 执行 bean 注册(在第 2 步中会生成一个包含全部 bean 名的类)。
编译过程:
- 执行编译
- 编译插件会执行这个 main 方法。
- main 方法中会调用自动生成的方法,即启动类
__ApplicationContextInitializer。
- 启动类
__ApplicationContextInitializer会调用注册 bean 的方法
xx__BeanFactoryRegistrations:beanFactory.registerBeanDefinition(),其中第一个参数对应的就是项目中所需的 bean。
扩展知识点:Spring AOT(提前编译)与 GraalVM(高性能的通用多语言虚拟机)。在这里暂不进行具体的讲解,若各位对此感兴趣,可以在留言区留言,届时我会单独写一章,将相关内容详细地分享给大家。
Spring AOT(提前编译)与 GraalVM(高性能的通用多语言虚拟机)结合使用,能够为那些期望对 Spring 应用程序进行优化的开发人员带来强大的解决方案。通过利用提前编译以及本机映像的生成,可以大幅度缩短应用程序的启动时间,显著改善内存的使用情况,并且能够极大地提高整体性能。
✨这里是 Java 技术乐园!每日分享实用干货,带你轻松提升编程技能,在职场中脱颖而出。快来加入我们,一起探索 Java 的精彩世界吧!😎 彦祖、亦菲,快留个小小的赞👍呗!🙏