私がオンラインで見つけたものから、Guice + Jersey統合の最先端は、両方のチームが行き詰まったように見える2008年以来停滞しています。問題の核心は、JAX-RSアノテーションがフィールドとメソッドの注入を実行することであり、これはGuice自身の依存性注入とうまく機能しません。
私が見つけたいくつかの例は、解明するのに十分ではありません:
IqbalyusufのJersey+Guice on Google App Engine Javaに関する投稿は、多くの定型文(手動でインジェクターを取得して呼び出す)に悩まされています。バインディングとインジェクションは、Guiceアノテーションを介して舞台裏で行われる必要があります。
Jonathan Curranの記事「Jersey、Guice、およびJSR-250を使用したRESTfulサービスの作成」は、はるかに新しい(2010)ため、希望を与えてくれましたが、GuiceServletModule内でJerseyサービスを開始する方法を示しただけでした。ただし、実際の依存性注入を行う例はありません。それは読者の練習問題として残されたと思います。Curranの投稿は、実際にはGuiceとJerseyを接続するための正しい最初のステップである可能性があるため、それから始める予定です。
食欲をそそるジェームズ・ストラチャンはこう書いています:
JAX-RSは、Spring、Guice、GuiceyFruit、JBossMCなどの依存性注入フレームワークでうまく機能します。基本的にはどちらかを選択できます。
しかし、開業医の観点からは真実であるという証拠は見当たりません。
私が不足しているのは、JAX-RSとGuiceアノテーションを組み合わせる方法に関する実際的な例と説明です。例えば:
- ジャージーがこれを制御したいので、どのリソースでもコンストラクターインジェクションを使用できないと思います
- @Injectを@PathParam、@QueryParamなどと組み合わせることができるかどうかはわかりません。
- MessageBodyWriter実装でインジェクションを使用する方法
プロセスでどちらか一方を犠牲にすることなく、JerseyとGuiceを組み合わせた重要なアプリケーションの例を、できればソースとともに誰かが持っていますか?私は関係なくこの道を進んでいますが、ジャージーとギスのリストの断片は、私の前に来た他の人の仕事を繰り返しているように私に思わせます。