2009-07-28 21 views
1

私はたくさんのgetXXXメソッドを持つDAOをたくさん持っていて、キャッシュされたメソッドのすべてまたはいくつかの明示的なリストが必要な場合は、これをSpringで透過的に行うことができますか?私はしたくない何春の最も簡単で最も透過的な方法をキャッシングする方法は何ですか?

は次のとおりです。

  • anotations
  • を追加/任意のソースコードを変更するには手動でDAOの数のプロキシ豆の数を作成し、それらのすべてを再配線する必要があります。

理想的には、正規表現を使用してDAOと一致させ、必要に応じて自動的にDAOをキャッシュして自動的にラップする方法です。

私たちはOSCacheを使用していますので、その例は素晴らしいでしょう。

答えて

0

春AOPがあなたの望むものだと思います。これにより、DAOのプロキシオブジェクトをすべて手動で処理せずに自動作成できるようになります。

これは複雑なトピックですが、私はあなたに春のドキュメントのread the relevant sectionを提案します。ただし、BeanNameAutoProxyCreatorを使用すると便利です。 AspextJKはフルAOPアプローチですが、かなり怖いです。スキーマベースのAOPアプローチはかなり簡単ですが、柔軟性は低くなります。 スプリングフレームワークの中心教義の

一つであること 非侵襲性の、これは、 の フレームワーク固有のクラス を導入し、 ビジネス/ドメインモデルにインターフェイスすることを強制されるべきではないという考えです。しかし、 にいくつかの場所では、Spring Frameworkは は、あなたのコードベースに 春フレームワーク固有の依存関係を導入するためのオプションを与えるん: 特定のシナリオでは、それはちょうど 平野方が簡単な場合がありますので、あなたにそのようなオプションを与えること で根拠がありますこのような方法で の特定の機能を読んだり、コード化したりしてください。スプリングフレームワーク (ほとんどの場合)は、 の選択肢を常に提供しています。 は、 オプションがご使用の特定の用途に最も適しているという情報に基づいた判断をする自由があります。 ケースまたはシナリオ

この章では、AOP フレームワーク(およびそのAOPスタイル) には、選択したのである に関連しているその一つの選択肢。 AspectJ および/またはSpring AOPのいずれかを選択できます。また、 の@AspectJ 注釈スタイルのアプローチまたは Spring XML設定スタイル のいずれかを選択することもできます。この章 が最初 春のチームが 春のXML構成スタイルオーバー@AspectJ 注釈スタイルのアプローチを好むことを示すものとして解釈してはならない @ AspectJのスタイルのアプローチを導入することを選択したという事実。

セクション6を参照してください。4 「 を使用するAOP宣言スタイルの選択」 と各スタイルのwhereforesについての詳しい説明は、

実際のキャッシングは、自分で行う必要がありますが、AOPフックが統合されると、それは簡単です。

0

Spring Modulesによって提供されるキャッシングを試すことができます。これは、側面を経由して、キャッシングを行い、それはあなたがjcabi-aspectsから@Cacheable注釈とAOPの側面を使用することができます

1

などOSCacheの、EHCacheなどは、JBoss Cacheの、などいくつかのキャッシング・ソリューションをサポートしています。

@Cacheable(lifetime = 5, unit = TimeUnit.SECONDS) 
public String load(URL url) { 
    return url.openConnection().getContent(); 
} 
関連する問題