Jetty源码分析(二)---ContainerLifeCycle组件
来源:互联网 发布:衣服除皱喷雾 知乎 编辑:程序博客网 时间:2024/06/06 10:49
1.lifecycle是jetty组件的生命周期
public void start()throws Exception;
public void stop() throws Exception;
public boolean isRunning();
public boolean isStarted();
public boolean isStarting();
public boolean isStopping();
public boolean isStopped();
public boolean isFailed();
public void addLifeCycleListener(LifeCycle.Listener listener);
public void removeLifeCycleListener(LifeCycle.Listener listener);
public interface Listener extends EventListener
{
public void lifeCycleStarting(LifeCycle event);
public void lifeCycleStarted(LifeCycle event);
public void lifeCycleFailure(LifeCycle event,Throwable cause);
public void lifeCycleStopping(LifeCycle event);
public void lifeCycleStopped(LifeCycle event);
}
从代码上可以看出,jetty每个组件都有start,stop两个函数,六种状态starting-started-running-stopping-stopped 还有个faied状态
他还提供了监听器,可以监听六种任何状态
2.Container是jetyy是一bean管理器
public boolean addBean(Object o);
public Collection<Object> getBeans();
public <T> Collection<T> getBeans(Class<T> clazz);
public <T> T getBean(Class<T> clazz);
public boolean removeBean(Object o);
public void addEventListener(Listener listener);
public void removeEventListener(Listener listener);
public interface Listener
{
void beanAdded(Container parent,Object child);
void beanRemoved(Container parent,Object child);
}
从代码上可以看出,他提供了bean容器的操作方法,也提供了容器中beanAdd和beanRemove的监听
3.ContainerLifeCycle是lifecycle,和Container的实现
Container部份:
List<Bean> _beans = new CopyOnWriteArrayList<Bean>();
他把所有的bean存到了CopyOnWriteArrayList(并发安全arrayList)中,
并用Bean进行标记..
enum Managed { POJO, MANAGED, UNMANAGED, AUTO }
private static class Bean{
private final Object _bean;
private volatile Managed _managed = Managed.POJO;
}
Bean类有4种状态,pojo表示这类仅仅是单纯的存储
UNMANAGED LifeCycle组件是否启动和此Bean没任何关系,此bean启动靠自己,且不被Container.Listener监听
AUTO 是 系统自动判断是哪类型
MANAGED LifeCycle组件已启动,他则必须启动
public void start()throws Exception;
public void stop() throws Exception;
public boolean isRunning();
public boolean isStarted();
public boolean isStarting();
public boolean isStopping();
public boolean isStopped();
public boolean isFailed();
public void addLifeCycleListener(LifeCycle.Listener listener);
public void removeLifeCycleListener(LifeCycle.Listener listener);
public interface Listener extends EventListener
{
public void lifeCycleStarting(LifeCycle event);
public void lifeCycleStarted(LifeCycle event);
public void lifeCycleFailure(LifeCycle event,Throwable cause);
public void lifeCycleStopping(LifeCycle event);
public void lifeCycleStopped(LifeCycle event);
}
从代码上可以看出,jetty每个组件都有start,stop两个函数,六种状态starting-started-running-stopping-stopped 还有个faied状态
他还提供了监听器,可以监听六种任何状态
2.Container是jetyy是一bean管理器
public boolean addBean(Object o);
public Collection<Object> getBeans();
public <T> Collection<T> getBeans(Class<T> clazz);
public <T> T getBean(Class<T> clazz);
public boolean removeBean(Object o);
public void addEventListener(Listener listener);
public void removeEventListener(Listener listener);
public interface Listener
{
void beanAdded(Container parent,Object child);
void beanRemoved(Container parent,Object child);
}
从代码上可以看出,他提供了bean容器的操作方法,也提供了容器中beanAdd和beanRemove的监听
3.ContainerLifeCycle是lifecycle,和Container的实现
Container部份:
List<Bean> _beans = new CopyOnWriteArrayList<Bean>();
他把所有的bean存到了CopyOnWriteArrayList(并发安全arrayList)中,
并用Bean进行标记..
enum Managed { POJO, MANAGED, UNMANAGED, AUTO }
private static class Bean{
private final Object _bean;
private volatile Managed _managed = Managed.POJO;
}
Bean类有4种状态,pojo表示这类仅仅是单纯的存储
UNMANAGED LifeCycle组件是否启动和此Bean没任何关系,此bean启动靠自己,且不被Container.Listener监听
AUTO 是 系统自动判断是哪类型
MANAGED LifeCycle组件已启动,他则必须启动
0 0
- Jetty源码分析(二)---ContainerLifeCycle组件
- Jetty 源码分析
- Jetty 源码分析(转移)
- Jetty 源码分析
- Jetty 源码分析
- jetty 源码分析
- Jetty 源码分析
- Jetty 源码分析
- Jetty 源码分析
- Jetty 源码分析
- Jetty 源码分析
- Jetty 源码分析
- Jetty 源码分析
- Jetty Continuation源码分析
- Jetty 源码分析
- Jetty源码分析
- Jetty 源码分析
- jetty源码分析:QueuedThreadPool
- windows下面使用RMarkDown
- 安卓开发学习心得-------自定义适配器BaseAdapter基础
- ubuntu使用
- 逐帧(Frame)动画+补间(Tween)动画的小案例
- Python使用链接Mysql数据库
- Jetty源码分析(二)---ContainerLifeCycle组件
- 二叉树相关面试题
- 汇编预备知识(一)
- Atitit.你这些项目不都是模板吗?不是原创 集成和整合的方式大总结
- Oracle Linux 对服务器和存储的硬件认证列表
- M路平衡B树
- AIM Tech Round 3 (Div. 2) D. Recover the String (构造)
- QT 结构体转XML XML转结构体
- The entitlements specified in your application’s Code Signing Entitlements file do not match those .