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

是什么?

    ApplicationScope 作用域是什么?

    ApplicationScope 是 loveqq-framework 新增的一种 bean 的作用域,它的作用是保证 IOC 容器全量刷新时,仍然能够保持单例。

     loveqq-framework 已支持的作用域有:

         单例:IOC 容器全量刷新时会重建,IOC 全量刷新即应用启动后,多次调用 ApplicationContext#refresh() 方法

         原型:每次获取都是新的实例

         线程:同一个线程内,是同一个实例,线程终结后自动销毁 bean

         应用:即使 IOC 容器全量刷新,也保持同一个单例

为什么?

    为什么需要 ApplicationScope?

    因为 loveqq-framework 支持 IOC 容器的全量刷新,全量刷新时,所有 bean 都会销毁并重建。

    基于这个机制,可以实现插件化开发,即通过 http 上传插件 jar 包,即可实时的加载新功能,可以点击参考这里

    所有 bean,自然也包括一些重量级的 bean,比如 WebServer,虽然重新启动一个 WebServer 很快,但也会造成毫秒级别不可用的问题。因此设计了 ApplicationScope,标记 WebServer bean,从而保证真正的不停机热部署实时刷新

不重建又想刷新怎么办?

        还是以 WebServer 为例,当 IOC 全量刷新时,有可能新增控制器方法,此时如果不更新 WebServer 的话,直接访问会报 404,这怎么搞?

        答案是:实现 ScopeRefreshed 接口,实现了该接口的 bean,当对应的作用域刷新时,将不会销毁重建,而是回调该接口,由开发者自己决定如何刷新!实际案例可以点击参考这里

    感兴趣的同学可以看一下

优秀的个人博客,低调大师

微信关注我们

转载内容版权归作者及来源网站所有!本站原创内容转载请注明来源!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。