WEB开发网
开发学院软件开发Java Tomcat 系统架构与设计模式,第 1 部分: 工作原理... 阅读

Tomcat 系统架构与设计模式,第 1 部分: 工作原理

 2010-05-21 00:00:00 来源:WEB开发网   
核心提示: 最新的 Tomcat6 中 StandardService 也基本没有变化,但是从 Tomcat5 开始 Service、Server 和容器类都继承了 MBeanRegistration 接口,Tomcat 系统架构与设计模式,第 1 部分: 工作原理(5),Mbeans 的管理更加合理,以

最新的 Tomcat6 中 StandardService 也基本没有变化,但是从 Tomcat5 开始 Service、Server 和容器类都继承了 MBeanRegistration 接口,Mbeans 的管理更加合理。

以 Server 为“居”

前面说一对情侣因为 Service 而成为一对夫妻,有了能够组成一个家庭的基本条件,但是它们还要有个实体的家,这是它们在社会上生存之本,有了家它们就可以安心的为人民服务了,一起为社会创造财富。

Server 要完成的任务很简单,就是要能够提供一个接口让其它程序能够访问到这个 Service 集合、同时要维护它所包含的所有 Service 的生命周期,包括如何初始化、如何结束服务、如何找到别人要访问的 Service。还有其它的一些次要的任务,如您住在这个地方要向当地政府去登记啊、可能还有要配合当地公安机关日常的安全检查什么的。

Server 的类结构图如下:

图 4. Server 的类结构图
Tomcat 系统架构与设计模式,第 1 部分: 工作原理

它的标准实现类 StandardServer 实现了上面这些方法,同时也实现了 Lifecycle、MbeanRegistration 两个接口的所有方法,下面主要看一下 StandardServer 重要的一个方法 addService 的实现:

清单 3. StandardServer.addService

public void addService(Service service) { 
  service.setServer(this); 
  synchronized (services) { 
    Service results[] = new Service[services.length + 1]; 
    System.arraycopy(services, 0, results, 0, services.length); 
    results[services.length] = service; 
    services = results; 
    if (initialized) { 
      try { 
        service.initialize(); 
      } catch (LifecycleException e) { 
        e.printStackTrace(System.err); 
      } 
    } 
    if (started && (service instanceof Lifecycle)) { 
      try { 
        ((Lifecycle) service).start(); 
      } catch (LifecycleException e) { 
        ; 
      } 
    } 
    support.firePropertyChange("service", null, service); 
  } 
} 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Tomcat 架构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接