
ApplicationScope 是什么?
ApplicationScope 是 loveqq-framework 框架最新引入的一种 Bean 作用域,其核心特性在于:即使在 IOC 容器进行全量刷新时,依然能维持 Bean 的单例性。
目前 loveqq-framework 支持的作用域包括:
ApplicationContext#refresh() 时会被销毁并重建  随着框架对插件化开发的支持增强,IOC 容器的全量刷新功能变得尤为重要。通过调用 refresh() 方法,可以重新加载整个应用上下文,实现如热更新插件等动态能力——例如通过 HTTP 接口上传 JAR 包即可实时扩展功能。
然而,这种机制也带来了一个问题:所有 Bean 都将被销毁并重建。对于某些重量级组件(如 WebServer),虽然重启耗时较短,但仍可能导致短暂的服务不可用(毫秒级),影响“零停机”体验。
为此,ApplicationScope 应运而生。将其应用于关键 Bean(如 WebServer),可确保其在整个应用生命周期中始终唯一存在,从而实现真正的无中断热部署与动态刷新。
如果 WebServer 实例不重建,但刷新后新增了 Controller 接口,那新路由无法注册,访问时会返回 404,该如何解决?
答案是:实现 ScopeRefreshed 接口。
当某个 Bean 实现了该接口,在其所处作用域刷新时,框架不会销毁和重建它,而是触发 onScopeRefreshed() 回调方法。开发者可在该方法中自定义刷新逻辑,比如重新扫描控制器、更新路由映射表等。
这样一来,既保留了原有实例,又完成了状态同步,完美兼顾稳定性与灵活性。具体使用示例可参考项目文档或源码中的实际案例。
感兴趣的同学欢迎查看源码了解更多细节:
源码地址:点击下载
以上就是loveqq 框架新增 ApplicationScope,IOC 全量容器刷新也可保持单例的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号