zoukankan      html  css  js  c++  java
  • tomcat源码阅读_代码篇3

    关于digester的详细工作过程,下面对代码进行了简单说明:

            //创建server对象,类为org.apache.catalina.core.StandardServer,第3个参数是说可以使用className属性来改变server对象
            digester.addObjectCreate("Server",
                                     "org.apache.catalina.core.StandardServer",
                                     "className");
            //设置server对象的属性
            digester.addSetProperties("Server");
           
            /*public void addSetNext(String pattern,
            String methodName,
            String paramType)
            */
            digester.addSetNext("Server",
                                "setServer",
                                "org.apache.catalina.Server");
            //同上,但是只能用固定的类来初始化对象
            digester.addObjectCreate("Server/GlobalNamingResources",
                                     "org.apache.catalina.deploy.NamingResources");
            //设置该对象属性
            digester.addSetProperties("Server/GlobalNamingResources");
           
            //同上
            digester.addSetNext("Server/GlobalNamingResources",
                                "setGlobalNamingResources",
                                "org.apache.catalina.deploy.NamingResources");
            //同上,但是第二个参数为null,所以在server.xml必须指定Listener的className属性
            digester.addObjectCreate("Server/Listener",
                                     null, // MUST be specified in the element
                                     "className");
            //同上
            digester.addSetProperties("Server/Listener");
            //同上
            digester.addSetNext("Server/Listener",
                                "addLifecycleListener",
                                "org.apache.catalina.LifecycleListener");

    其余部分的含义也大致相同,如果还有不理解的,可以在本博里查看how tomcat works第15章的内容,如果还不清楚,可以结合Digester的doc分析。

  • 相关阅读:
    简单工厂、工厂方法和抽象工厂的学习笔记
    单一职责原则,开-闭原则,依赖倒置原则
    我对面向对象设计的理解——Java接口和Java抽象类
    高可用与负载均衡的区别
    应用交付、负载均衡(Load balancing)、高可用、F5
    四种常见的 POST 提交数据方式
    Git fetch和git pull的区别
    苹果Mac OS X显示隐藏文件的方法
    Appium教程---Client/Server Architecture
    UNIX网络编程——使用线程的TCP回射服务器程序
  • 原文地址:https://www.cnblogs.com/macula7/p/1960491.html
Copyright © 2011-2022 走看看