私は常に、基本的なキャッシングのニーズにJavaシングルトンクラスを使用してきました。
現在、プロジェクトはehcacheを使用しており、ソースコードを詳しく調べないと、シングルトンパターンの何が問題になっているのかを理解できません。
つまり、ボイラープレートコード(静的HashMap)を記述せずに、xml構成とアノテーションを使用してキャッシュを実行できることを除いて、ehcahceフレームワークを使用する利点は何ですか。
私は常に、基本的なキャッシングのニーズにJavaシングルトンクラスを使用してきました。
現在、プロジェクトはehcacheを使用しており、ソースコードを詳しく調べないと、シングルトンパターンの何が問題になっているのかを理解できません。
つまり、ボイラープレートコード(静的HashMap)を記述せずに、xml構成とアノテーションを使用してキャッシュを実行できることを除いて、ehcahceフレームワークを使用する利点は何ですか。
それはあなたがあなたのキャッシングメカニズムから何を必要とするかに依存します。Ehcacheは多くの優れた機能を提供します。これを手動で行うには、適切に設計された多くのコードが必要です。
http://ehcache.org/about/featuresでそれらを調べて、プロジェクトに本当に何かが必要かどうかを判断することをお勧めします。
最も重要なもの:
ディスクにオーバーフローする機能-これは通常のHashMapにはないものであり、そのようなものを書くことは簡単ではありません。EhCacheは、Key-Valueデータベースを構成するための簡単な機能として機能します。
ディスクへのオーバーフローを使用しない場合でも、独自の実装で書き込むための大きな定型文があります。データベース全体をロードできる場合は、書き込み時に永続性のあるメモリデータベースを使用し、起動時に復元することが解決策になります。ただし、メモリには制限があり、メモリから要素を削除する必要があります。しかし、どれに基づいて、どれですか?また、キャッシュ要素が古すぎないことを表明する必要があります。古い要素を置き換える必要があります。キャッシュから要素を削除する必要がある場合は、古い要素から始める必要があります。しかし、ユーザーが何かを要求したときにそれを行う必要がありますか?リクエストの速度が低下します。または、独自のスレッドを開始しますか?
EhCacheを使用すると、これらすべての問題に対処してテストするライブラリがあります。
また、クラスター化されたクローズドソースバージョンのehcacheがあり、分散キャッシュを使用できます。これが、ehcacheの使用を検討する理由の1つかもしれません。