2016-06-21 5 views
2

私は依存性注入フレームワークとしてGuiceを使用しています。私は、RESTサービスの作成を容易にするために追加できるものが必要です。Guice with JAX-RS

guice-servletを見てきましたが、HTTPサーブレットへのパスを指示するのにはうまくいきますが、それだけのことですが、注釈構文のようなJAX-RSが期待されていましたが、 。

JAX-RSを実際に使っていないのですが、これは参考になっているようですが、独自の依存性注入フレームワークを使用しているようで、Guiceではうまくいきません。それに加えて、5MB以上の依存関係があります。これは、私が後にしていることに大いに役立ちます。

Guiceは、JAX-RSに貸与しないように設計されていますか?

+0

次の2つのDIフレームワークを統合する方法を示し投稿を見つけたことがありますか? Jerseyがインフラストラクチャのために全面的に使用しているため、HK2(Jerseyの内部DIフレームワーク)を完全に取り除くことはできません。しかし、それをGuiceと統合する方法があります。私はそれらの記事のいくつかに答えました。この統合を行う際に私が見る唯一の問題は、人々がGoogle App Engineを使用しているときです。私はGAEを使用しないので、私はその問題を探検することはできませんでした。 –

+1

@peeskillet - 私の質問はguice-jerseyの周りにはないと言われています。もし私が正しいことをしているのであれば、それはもっと簡単です。それを行うモノリスの依存関係 - それは私のために赤旗を発生させました。 – Cheetah

+1

私はいくつかのアプリケーションでGuice + Jerseyをやったことがあり、とても満足しています!そう、はい、私はそれが正しいことだと思います。 – Jorn

答えて

4

おそらくguice-servletモジュールがあなたを間違えていると思います。 GuiceはDIフレームワークです。期間。 guice-servletモジュールの実際の目的は、サーブレットとフィルタのショートカット宣言を提供せず、特殊スコープ要求のセッションをサポートしています。それらの良いshorcut宣言は、統語的な砂糖です。

JavaでJAX-RS実装を選択することは少し問題です。いくつかのオプションがあります(Jersey、Resteasy、Spring ...)。完全なJavaEEを使用している場合は、選択する必要はありません。注釈(およびDI)をそのまま使用します。

JavaEEサーバー(TomcatのようなWebサーバーまたはAndroidアプリのような他のもの)を使用していない場合は、実装を選択する必要があります。 DIを使用している場合は(私が推奨する)、もう一度決定を下す必要があります。

JavaEEを使用しておらず、JAX-RSと依存関係注入を使用していくつかのREST APIを実装したいとします。あなたはいくつかの研究を行い、ジャージーとグイスを選ぶことになります。良い選択、私は私の最後のプロジェクトでもそれらを選択しました。はい、ジャージーの依​​存グラフは少し膨らんでいます。私は知っている、それは良い方法かもしれない。

ここでは、ジャージーがという悪いものである独自のDIフレームワーク(HK2)を使用しているため、どのように連携させるかが問題になります

Jersey-Guiceとの統合については、SOに関する多くの参考文献があります。あなたの最善の策はGuice HK2 bridgeです。

何ですか? SOの直接参照が必要ですか?問題はない、ここでは良いことだ。答えをupvoteすることを忘れないでください。 ;-)

+0

jersey-guice bridgeはguice 3.0に依存します。 guice 4.0で動作するものがあるのだろうか? – nagylzs