当前位置: 首页 > article >正文

Spring 6 实现 Bean 异步初始化,减少项目启动时间

 

在 Spring 6 中,异步初始化 Bean 为优化应用启动性能提供了有力手段。通过让特定的 Bean 在后台进行初始化,避免其阻塞应用的启动流程,从而显著缩短应用从启动到对外提供服务的时间。

                          一、基础环境搭建

首先,确保项目的依赖中引入了 Spring 6 相关的库。在 Maven 项目中,需要在 pom.xml 文件中配置正确的 Spring 6 依赖项:


13efd8a5678046e7aae17f253bf05ab1.png
 

二、异步初始化配置

 

Spring 6 提供了 @Bean 注解的 bootstrap 属性来实现 Bean 的异步初始化。例如,我们有一个模拟的耗时 Bean:

4651ac7df57444f882412174c4ec8432.png


        
在配置类中,使用 @Bean(bootstrap = BootstrapMode.BACKGROUND) 注解来标记该 Bean 为异步初始化:

    ffdf239733fe456cb36f10e0c751569a.png
这样,当应用启动时,TimeConsumingBean 将会在后台线程中进行初始化,不会阻塞其他 Bean 的创建和应用的启动过程。

  

三、验证与监控

为了验证 Bean 是否异步初始化,可以在应用启动类的 main 方法中添加日志输出,观察应用启动时Bean 初始化的顺序:

99a1bde3af2147dabe3333abdb86ffab.png
通过查看日志中的时间戳,可以发现应用启动时间不再受限于 TimeConsumingBean 的初始化时间,从而验证了异步初始化的效果。

 

在 Spring 6 中利用异步初始化 Bean 是一种简单而有效的优化启动性能的方法,对于提升应用的可用性和响应性具有重要意义,尤其在大型复杂项目中,能够让应用更快地启动并对外提供服务。

 

优化效果
应用启动时间减少:通过异步初始化,应用启动时间可以减少40-70%。一个需要 2 分钟时间启动的项目,现在只需要 1 分钟就可以启动起来。节省了不少的开发调试时间。

 

 


http://www.kler.cn/a/447213.html

相关文章:

  • 时间管理系统|Java|SSM|JSP|
  • 【LeetCode】394、字符串解码
  • 【网络安全】用 Frida 修改软件为你所用
  • Word图片嵌入格式不正确的解决办法
  • HBase、Hive、Redis 和 MongoDB的对比
  • C 数组:索引魔杖点化的数据星图阵列
  • JAVA包装类变量赋值是会新创建对象实例
  • 【LeetCode】227、基本计算器 II
  • C#中方法参数传值和传引用的情况
  • AI大模型与传统模型的六大区别
  • feign调用远程服务返回值的一种处理办法
  • PostgreSQL中使用PL/pgSQL开发函数
  • Android Studio AI助手---Gemini
  • 前端处理流式数据(SSE服务)
  • 单北斗+鸿蒙系统+国产芯片,遨游防爆手机自主可控“三保险”
  • 基于预测反馈的情感分析情境学习
  • 国内网络在Ubuntu 22.04中在线安装Ollama并配置Open-WebuiDify
  • 【论文阅读】Computing the Testing Error without a Testing Set
  • MySQL 中的 MVCC:实现高效并发控制
  • 重拾设计模式--观察者模式
  • R语言函数简介
  • [SZ901]JTAG高速下载设置(53Mhz)
  • C# 6.0 连接elasticsearch数据库
  • 【进阶编程】MVVM框架的每层对应那些业务
  • 前端(Vue)tagsView(子标签页视图切换) 原理及通用解决方案
  • ubuntu 卸载 MySQL