私はインターセプタとAOPについて、あなたのコードを解き放つことができ、クロスカッティングの問題を側面に対処する方法を読んでいました。私は即座にCDIとデータベースにアクセスしようとするたびにカスタム・インターセプタを使用してキャッシュにアクセスすることを考えました。 これを既に実装しているmemcacheをサポートするライブラリはありますか?私はentitymanagerへの呼び出しは傍受されるべきだと思います。CDIインターセプタとmemcache
答えて
IMHO、もしあなたがそのようにしたいのであれば、Hibernate Cache/JBoss Cache(あなたのテクノロジースタックについて推測するだけですが、ほぼすべてのスタックのための製品/ソリューションがあります)あなたのニーズに合った?
あなたは自分のクエリやオブジェクトキャッシュを開発するという点で、ホイールを再開発したくはありませんか?
一般に、memcachedを使用して直接DB要求を回避することは、適切かつ効率的ではありません。あなたは本当にDAO - > DTO境界のような高レベルの概念をキャッシュしたいと思っています。
私はAOPを使用して、キャッシュ無効化とオブザーバ管理コードをJavaプログラムに挿入するのに成功しました。 AOPを使用すると、コードのさまざまな部分の異なる再利用可能性を考えることができます。それは私がこれらの側面を設計する必要はないという意味ではありませんが、それは私の制限を解放し、切断や貼り付けから私を防ぐ...
私はこのアクセスパターンを設計することですこれらの境界のそれぞれで作業をしなければならず、コンパイル時にその作業を挿入するクロスカットを設計する必要があります。
ダスティン、私はあなたの提案を理解するのに少し苦労しています。私の最初のアイデアは、entitymanagerへの呼び出しを傍受することでした。このインターセプタは、要求されたオブジェクトがすでにキャッシュに入っているかどうかをチェックし、データベースにクエリを実行しない場合はオブジェクトをキャッシュから取得し、memcache 、これは良い考えではないですか? – arg20
また、インターセプタを使用する価値はありますか?キャッシュを使用するポイントはデータベースを照会するのを避けることです。これによりパフォーマンスを向上させることができますが、デコレータ/インターセプタが顕著なオーバーヘッドを追加すると、この利得は無駄になります。 – arg20
キャッシュのポイントは、データベースのクエリを避けるものではありません。キャッシュのポイントは、高価な作業をメモすることです。これはしばしばデータベースに関係しますが、通常はデータベースクエリの結果とは直接関係しません。 - あなたの方法論が健全なものであれば、それは間違いなく有効ですが、無効化はより困難になります。 jan grothの応答を参照してください。 :) – Dustin
- 1. インターセプタとApache Camel
- 2. CDI @Dependentと@New
- 3. CDIイベントとジェネリック
- 4. RESTサービスとMemcache
- 5. Spring.NETとコンストラクタのインターセプタ
- 6. CDI
- 7. memcacheと似たサービス
- 8. memcache limit(MySQLとPHP)
- 9. MemCacheとAzureのキャッシュ
- 10. MemcacheとMemcachedのインストール
- 11. Struts 2のインターセプタは、Java Spring 3のインターセプタと同じですか?
- 12. フィルタとWebアプリケーションのインターセプタ
- 13. NHibernate:インターセプタとリスナの違い
- 14. たJavaEEとCDI:理解@Observes
- 15. CDIとAspectJの比較
- 16. StructureMapインターセプタ
- 17. Master + SlaveデータベースアーキテクチャとMaster + Memcache
- 18. memcache/php - multi memcacheノードを使ったベストプラクティス
- 19. CDI/JEE5とTomcat6との溶接
- 20. Castle Windsor WCFインターセプタ
- 21. Springインターセプタ対サーブレットフィルタ
- 22. RESTEasyのインターセプタ
- 23. struts2のparamsPrepareParamsStackインターセプタ?
- 24. Java EE EJBインターセプタ
- 25. JSFのインターセプタ
- 26. Spring mvcインターセプタaddObject
- 27. BasicDataSourceのSpringインターセプタ
- 28. Angular2のインターセプタ
- 29. にAroundInvokeインターセプタ
- 30. ejb 3.0のインターセプタ
[はんだ](http://seamframework.org/Seam3/Solder) – Shahzeb