你们springboot版本是多少?你知道springboot3.0吗?相比2.0有什么优点?

581 阅读2分钟

你们springboot版本是多少?你知道springboot3.0吗?相比2.0有什么优点?

Spring Boot 3.0 启动优化及相关技术解析

一、Spring Boot 3.0 启动优化分析

简单原理阐述:在 Spring Boot 3.0 中,程序启动时不再需要扫描文件中的 bean。这是因为在编译时已经进行了 bean 扫描,所以启动时无需再进行文件扫描来查找 bean,从而实现了更快的启动速度。

优化步骤

  1. springboot 插件在编译时会执行一个 main 方法;
  2. 扫描项目中的启动类、bean,生成一对一的文件以及 springboot 所需的其他文件;
  3. 当程序启动时,会运行上一步生成的启动类;
  4. 执行 bean 注册(在第 2 步中会生成一个包含全部 bean 名的类)。

编译过程

  1. 执行编译

image.png

  1. 编译插件会执行这个 main 方法。

image-1.png

  1. main 方法中会调用自动生成的方法,即启动类__ApplicationContextInitializer

image-2.png

  1. 启动类__ApplicationContextInitializer会调用注册 bean 的方法

image-3.png

  1. xx__BeanFactoryRegistrations:beanFactory.registerBeanDefinition(),其中第一个参数对应的就是项目中所需的 bean。

image-4.png

扩展知识点:Spring AOT(提前编译)与 GraalVM(高性能的通用多语言虚拟机)。在这里暂不进行具体的讲解,若各位对此感兴趣,可以在留言区留言,届时我会单独写一章,将相关内容详细地分享给大家。

Spring AOT(提前编译)与 GraalVM(高性能的通用多语言虚拟机)结合使用,能够为那些期望对 Spring 应用程序进行优化的开发人员带来强大的解决方案。通过利用提前编译以及本机映像的生成,可以大幅度缩短应用程序的启动时间,显著改善内存的使用情况,并且能够极大地提高整体性能。

✨这里是 Java 技术乐园!每日分享实用干货,带你轻松提升编程技能,在职场中脱颖而出。快来加入我们,一起探索 Java 的精彩世界吧!😎 彦祖、亦菲,快留个小小的赞👍呗!🙏