欢迎光临,我们是一家专注中小型企业营销推广服务的公司!

咨询热线:400 9868 577
淮南兰乔电子商务有限公司
新闻中心News
淮南兰乔电子商务有限公司

loveqq 框架新增 ApplicationScope,IOC 全量容器刷新也可保持单例

作者:心靈之曲 | 点击: | 来源:心靈之曲
2310
2025
是什么?ApplicationScope是什么?ApplicationScope是loveqq-framework框架最新引入的一种Bean作用域,其核心特性在于:即使在IOC容器进行全量刷新时,依然能维持Bean的单例性。目前loveqq-framework支持的作用域包括:单例(Singleton):默认作用域,但在每次调用ApplicationContext#refresh()时会被销毁并重建原型(Prototype):每次请求获取都会创建一个全新实例线程(Thr...

是什么?

ApplicationScope 是什么?

ApplicationScope 是 loveqq-framework 框架最新引入的一种 Bean 作用域,其核心特性在于:即使在 IOC 容器进行全量刷新时,依然能

维持 Bean 的单例性

目前 loveqq-framework 支持的作用域包括:

  • 单例(Singleton):默认作用域,但在每次调用 ApplicationContext#refresh() 时会被销毁并重建
  • 原型(Prototype):每次请求获取都会创建一个全新实例
  • 线程(Thread):同一线程内共享同一实例,线程结束则自动清理
  • 应用(ApplicationScope):跨刷新周期保持唯一实例,真正意义上的全局单例

为什么需要它?

随着框架对插件化开发的支持增强,IOC 容器的全量刷新功能变得尤为重要。通过调用 refresh() 方法,可以重新加载整个应用上下文,实现如热更新插件等动态能力——例如通过 HTTP 接口上传 JAR 包即可实时扩展功能。

然而,这种机制也带来了一个问题:所有 Bean 都将被销毁并重建。对于某些重量级组件(如 WebServer),虽然重启耗时较短,但仍可能导致短暂的服务不可用(毫秒级),影响“零停机”体验。

为此,ApplicationScope 应运而生。将其应用于关键 Bean(如 WebServer),可确保其在整个应用生命周期中始终唯一存在,从而实现真正的无中断热部署与动态刷新

不重建如何同步变更?

如果 WebServer 实例不重建,但刷新后新增了 Controller 接口,那新路由无法注册,访问时会返回 404,该如何解决?

答案是:实现 ScopeRefreshed 接口

当某个 Bean 实现了该接口,在其所处作用域刷新时,框架不会销毁和重建它,而是触发 onScopeRefreshed() 回调方法。开发者可在该方法中自定义刷新逻辑,比如重新扫描控制器、更新路由映射表等。

这样一来,既保留了原有实例,又完成了状态同步,完美兼顾稳定性与灵活性。具体使用示例可参考项目文档或源码中的实际案例。

感兴趣的同学欢迎查看源码了解更多细节:

源码地址:点击下载

相关推荐
我要咨询做网站
成功案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 400 9868 577
    info#ilanqiao.cn
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得兰乔电子商务策划专家免费为您制作
价值5880元《全网营销方案+优化视频教程》一份!
下单送礼感恩七周年,新老用户下单即送创业型空间+域名等大礼
24小时免费咨询热线400 9868 577
合作意向表
您需要的服务
您最关注的地方
预算

直接咨询