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 の優れている点の 1 つは、関心のある要素に対してのみ処理を実行するため、メモリ フットプリントが少なくて済むことです。

于 2009-06-17T14:56:45.413 に答える
1

クラスローダーを使用してルールファイルがどのようにロードされているかを理解していると思いますか?基本的に、クラス自体と同じパッケージを調べてURL、ファイルの絶対位置を示すを作成します。

ダイジェスターに関しては、私はそれを使用していませんが、これ(http://commons.apache.org/digester/)をざっと読んですべてを説明する必要があります。

于 2009-06-17T14:25:22.840 に答える
1

これは、ここで呼び出されるメソッドです。xml ファイルはコンパイルする必要がないため、Java では設定のために Xml が一般的に使用されます。Java ファイルに同じ構成があるということは、ファイルをコンパイルする必要があることを意味します。

于 2009-06-17T14:23:14.263 に答える
0

彼らは私の最後のギグでそれを使用しましたが、私が覚えているのは、それが非常に遅かったということだけです。

于 2009-06-17T15:15:30.057 に答える