1

我是 Java 新手,我在一个 Java 项目中遇到了一个声明:

Digester digester = DigesterLoader.createDigester(getClass()
                .getClassLoader().getResource("rules.xml"));

rules.xml 文件包含各种模式,每个模式都有不同的属性,如类名、方法名和其他一些属性。

我用谷歌搜索了消化器,但找不到任何有用的东西可以帮助我完成上述陈述。谁能告诉我执行上述语句的步骤是什么?事实上,这种 XML 东西的优势是什么?

4

4 回答 4

2

swapnil,作为我在 Struts 时代的 Digester 用户,老实说,学习/调试很棘手。这是一个很难熟悉的库,本质上您正在为某些元素设置事件处理程序,有点像 SAX 解析器(实际上它在幕后使用 SAX)。因此,您为规则引擎提供一些您感兴趣的节点的 XPath,并设置将实例化的规则,并使用它在 XML 文件中找到的数据设置一些 POJO 的属性。

好主意,一旦你习惯了它就很好,但是如果你有一个用于输入 xml 文件的 xsd,我会尽快推荐你使用 JAXB。

Digester 的一个优点是它只会对你感兴趣的元素做一些事情,所以内存占用最终会很好而且很低。

于 2009-06-17T14:56:45.413 回答
1

这是在此处调用的方法。xml 在 Java 中通常用于配置,因为 xml 文件不需要编译。在 java 文件中具有相同的配置意味着您必须编译该文件。

于 2009-06-17T14:23:14.263 回答
1

我假设您了解如何使用类加载器加载规则文件?它基本上与类本身在同一个包中查找,并创建一个URL提供文件绝对位置的包。

至于 Digester,我没有使用过它,但快速阅读一下(http://commons.apache.org/digester/)应该可以解释一切。

于 2009-06-17T14:25:22.840 回答
0

他们在我的最后一次演出中使用了它,我只记得它非常慢。

于 2009-06-17T15:15:30.057 回答