前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tomcat启动分析(5)Lifecycle、设计模式

tomcat启动分析(5)Lifecycle、设计模式

作者头像
平凡的学生族
发布2019-05-25 09:29:31
7850
发布2019-05-25 09:29:31
举报
文章被收录于专栏:后端技术

本文只是一个回忆用的总结,建议阅读原文,以获得更全面的理解。

参考

  1. 主要参考tomcat生命周期建议详细阅读。
  2. 次要参考Tomcat 7 启动分析(五)Lifecycle 机制和实现原理

设计思路

模板方法、观察者模式、责任链设计模式

模板方法

StandardServer直接继承了抽象父类LifecycleMBeanBase,从而间接继承了LifecycleBase,我们在LifecycleBase中找到了start()方法。这就引出了“模板方法”这个非常好用的设计模式,start()方法就是通用行为,或者称之为算法的骨架,方法内部的步骤中肯定存在一些留给各个子类的具体实现

观察者模式、<Listener/>

参考tomcat生命周期的中后部分。 StandardServer的每个生命周期函数xxInternal中,会调用fireLifecycleEvent,其内部又会对每个Listener调用lifecycleEventListenerserver.xml中定义了:

这里用到了观察者模式

责任链设计模式

我们发现,StandardService类的初始化过程依然是将初始化的过程“下放”给子容器初始化的过程。 其实每个组件的生命周期调用都会调用其子组件的对应生命周期函数。 所以这用到了责任链设计模式

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考
  • 设计思路
  • 模板方法
  • 观察者模式、<Listener/>
  • 责任链设计模式
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档