ではなく、「参照データ」を扱うための通常のパターンで何How To Cache Information In A Threadsafe Manner参考データパターンを正確に、このスレッドと同様に
- 通常、データベースまたはプロパティファイルで外部頻繁にアプリケーションによって読み取られたデータ、非常にまれに更新されました(日、週、月)?データがに更新されると、外部で更新されます。
が、これは通常、私はDAOに注入でき、したがって、独自のコンテンツを管理することができるだろうシングルトンだろうか?このサービスでリフレッシュ(refresh)(つまり、MBeanを介して強制的にリフレッシュ()メソッドを公開するというアイデアが気に入っていますので、アプリケーションをバウンスする必要はありません)。
他からSO人々がそのレベルで透過的にDAOの必要に応じてキャッシュをインスタンス化可能性があるように聞こえる、スレッド。
私は一種のシングルトンサービスのアイデアのようにデータベースからデータをロードし、実際のDAO、または他のハードコードされた応答を返すモック/テストダブルのいずれかを注入されています。しかし、もし私がjava enumの経由でシングルトンとしてサービスを実装しようとすると、これはSpring経由で少し問題があります。
だから、他の人がどのように参照データを扱うのですか?問合せ時には問合せを行いますが、キャッシュの下にはキャッシュがありますか?または、別のメモリ内サービスですか?
私はその部分で水を混乱させたかもしれません。主に、私はシングルトンに依存関係を注入することを考えています。今私はそれについて考えている、これは別の質問かもしれない。 とにかく、ブロッホによれば、Javaでシングルトンを実装するための現在のベストプラクティスは、単一の部材(インスタンス)を有する列挙型である:すなわちパブリック列挙エルビス{ INSTANCE。 } – ayang
もしあなたがこのルートを下っていたら、MethodInvokingFactoryBeanを使ってSpring経由で依存関係を注入して、enumクラスの関連するセッターを呼び出すことはできませんでしたか? – Adamski
はい、それは私がやっている可能性が高いです - しかし、私は私が最初の原則に戻って私がこれを間違ってやっているかどうかを知っていると思ったのは十分控えめでした。 – ayang