跟踪Tomcat的启动过程,可以发现是在Catalina调用load方法时对server.xml进行加载的
观察Catalina的load方法
load() -> createStartDigester()
-> configFile()
-> digester.push(this)
-> digester.parse()
tomcat使用digester来帮助解析server.xml,digester内部是使用saxparser来解析的,是基于流的解析,边读边解析,可以制定规则,使得在解析过程遇到特定元素做相应操作。
(1)createStartDigester方法创建digest规则
addObjectCreate/addSetProperties/addSetNext/addRuleSet实际都相当于在addRule
Rule接口有begin/body/end/finish等方法&#