私は、Jersey 2.x と、Jersey に組み込まれている HK2 を使用しています。注釈でマークされたサービスの特定のメソッドを装飾する必要があります。つまり、そのようなメソッド呼び出しの前後にいくつかの追加アクションを実行したいと考えています。残念ながら、HK2 には AOP 機能がありません。ファクトリをサービスのインターフェイスにバインドし、ファクトリのprovide
メソッドが呼び出されるたびにサービスのプロキシを作成できると考えました。ただし、工場で機能するにはいくつかのものが必要です。
1) プロキシを作成するためのサービスのクラスとインターフェース
2)ServiceLocator
すべてのサービスの依存関係を適切に注入するインスタンス
そして、私は両方を持つ方法がわかりません。を使用してファクトリをバインドするbindFactory(MyFactory.class)
と、サービスに関する情報を渡すことはできませんが、ServiceLocator インスタンスをそれに注入することはできます。そして、使用してファクトリをバインドするとbindFactory(new MyFactory(Service.class, ServiceImpl.class))
、サービスに関する情報が得られServiceLocator
ますが、そのサービスを適切に作成するためのインスタンスがありません。HK2 はファクトリ インスタンスに何も注入せず、とにかく ServiceLocator インスタンスを取得する方法がわかりません。 AbstractBinder を使用して、バインド中にファクトリにロケーターを提供します。
提案や推奨事項をいただければ幸いです。サービスを一様にプロキシしたいと思ったのは私が初めてではないことを願っています。