Digester在项目中应用
Digester由"事件"驱动,通过调用预定义的规则操作对象栈,将XML文件转换为Java对象。
对使用者而言,Digester的核心在于匹配模式与规则(matching pattern + rule)。
其实就两点:
1、用一个XML文件定义Java对象的状态(数据源文件),
2、另一个XML文件定义装载数据源文件的装载逻辑
场景:
CRM要调用帐管的接口查帐单,由于帐管接口未定下来,或者经常变动。
所以先定义好帐单类,因为展示形式相对固定,所以可以先定义好类。
然后
protected Digester createStartDigester() { long t1=System.currentTimeMillis(); // Initialize the digester Digester digester = new Digester(); digester.setValidating(false); digester.setRulesValidation(true); HashMap<Class, List<String>> fakeAttributes = new HashMap<Class, List<String>>(); ArrayList<String> attrs = new ArrayList<String>(); attrs.add("className"); fakeAttributes.put(Object.class, attrs); digester.setFakeAttributes(fakeAttributes); digester.setClassLoader(StandardServer.class.getClassLoader()); // Configure the actions we will be using digester.addObjectCreate("Server", "org.apache.catalina.core.StandardServer", "className"); digester.addSetProperties("Server"); digester.addSetNext("Server", "setServer", "org.apache.catalina.Server"); digester.addObjectCreate("Server/GlobalNamingResources", "org.apache.catalina.deploy.NamingResources");....
?
?