私は apache-digester を使用して XML ファイルをオブジェクト モデルにロードするのが大好きです。
多くの重複 (イベント ログ) を含む大きなファイルを扱っているため、特定の属性 (頻繁に繰り返されるもの) の文字列を String.intern() したいと考えています。
Apache-Digester は制御を放棄する前にファイル全体を読み取るため、最初は大量の重複を生成し、大量のメモリを消費します。その後、すべてのオブジェクトとインターンを反復処理できますが、それでも大量のメモリを使用するというコストがかかります。
もう 1 つの方法は、オブジェクト モデル内の対応する setProperty Bean 関数を常にパラメーターをインターンすることですが、既にインターンされている文字列に対してコード内から同じ関数を使用するため、無駄になります。その上、ダイジェスター固有のコードをモデルに導入したくありません。
プロパティを設定する前後に Digester をインターンまたはカスタム コードを実行させる方法はありますか?