这篇研究Tomcat自己实现的Rule, 具体分析LifecycleListenerRule和典型的Rule调用。
1。Tomcat实现的Rule:
大部分都在org.apache.catalina.startup包下, 可见这些Rule在启动的时候占举足轻重的作用。
2. 分析LifecycleListenerRule。
LifecycleListener是tomcat自定义的容器事件框架,所以它在容器中有广泛的用途和可以非常灵活的配置。
关键的begin方法:
1 利用className创建一个实例;
2 向下转型至LifecycleListener
3 将lifecycleListener利用addLifecycleListener放到栈顶的对象中。
/**
* Handle the beginning of an XML element.
*
* @param attributes The attributes of this element
*
* @exception Exception if a processing error occurs
*/
public void begin(String namespace, String name, Attributes attributes)
throws Exception {
// Instantiate a new LifecyleListener implementation object
String className = listenerClass;
if (attributeName != null) {
String value = attributes.getValue(attributeName);
if (value != null)
className = value;
}
Class clazz = Class.forName(className);
LifecycleListener listener =
(LifecycleListener) clazz.newInstance();
// Add this LifecycleListener to our associated component
Lifecycle lifecycle = (Lifecycle) digester.peek();
lifecycle.addLifecycleListener(listener);
}
3 org.apache.catalina.startup.Catalina中的使用
Catalina在load的时候调用createStartDigester组建Digester, 定义Catalina对应的配置XML和对象初始化的映射关系。
通过分析Catalina的 createStartDigester, 可以清楚地看到配置文件XML中各个属性对应的对象实现中的属性, 能更加深刻的理解Tomcat的配置。
- 描述: Tomcat实现的Rule:
- 大小: 69.9 KB
分享到:
相关推荐
digester是解析xml的一个架包,有他的方法
xml解析commons-digester的demo
不错的解析XML的类,主要利用org.apache.commons.digester.Digester;
digester解析xml的问题.pdf
Digester java解析xml jar包
Digester解析XML,也是找到的别人的。
使用Apache的Digester来解析XML文档,代码,有解析!
博文链接:https://aga.iteye.com/blog/218587
Digester解析XML文件
使用STRUTS的解析XML技术digester来解析多层嵌套的XML文件,简单易懂
使用Digester解析XML文档示例
NULL 博文链接:https://tyrion.iteye.com/blog/1912290
Digester解析XML问题.pdf
Digester的XML规则文件配置: 在Digester中提供了一个包:org.apache.commons.digester.xmlrules。这个包中的类可以从一个XML文档中读取并返回一个指定的配置信息。XML文档配置文件必须使用DTD,这是xmlrules包的一...
使用digester配置rule.xml规则来解析自定义的xml文件
Digester读取XML学习,Digester读取XML学习
java反射,Digester解析xml文档
digeter解析xml所必须的jar包,包括commons-logging-1.2.jar、commons-digester-2.1.jar、commons-beanutils-1.9.3.jar
Digester使用堆栈来保存xml节点(stack.push()方法),当该xml节点中嵌套的所有子节点解析完毕,该节点将被弹出(stack.pup()方法)。Digester最大的优点就是使用模式匹配来表示xml文件中节点之间的父子关系 。