Tomcat通过Digester类通过解析server.xml来创建一个Server。
创建一个完整的对象,需要经过三个过程:创建对象实例、设置对象属性、设置对象组合关系,分别对应三个规则(Rule):ObjectCreateRule、SetPropertiesRule、SetNextRule。
Digester中最重要的属性是stack ,保存创建的对象,并在标签结束时pop该对象。
Digester的逻辑就是当解析xml的开始标签(**Digester.startElement()**)时,找到标签对应的ObjectCreateRule、SetPropertiesRule,调用ObjectCreateRule.begin(),创建对象,将该对象push进stack。调用SetPropertiesRule.begin()设置栈顶对象的属性。
当解析结束标签(**Digester.endElement()**)时,找到标签对应的SetNextRule、ObjectCreateRule,调用SetNextRule .end方法,取出栈顶的两个对象进行组合,调用ObjectCreateRule.end(),从stack中pop该标签的对象。
Tomcat中Digester解析server.xml文件
最新推荐文章于 2022-10-17 23:03:51 发布