2016-10-25 6 views
1

iveは、レガシーコードの全リファクタリングを担当しています。それは単純なWebサービス、単にhttpリクエスト、ビジネスロジック、おそらく少数のデータベース呼び出しといくつかの他のマイクロサービス呼び出し、そしてjson応答です。私は春のブートを使用しないようにプッシュされています。私の周りの誰もそれを以前に使用していないからです。私はジャージーを使用したことがないので、春のブートが簡単にできるようにする方法を見つけようとしています(つまり、バネデータ、キャッシュ、スプリングコンサル、スプリングスプリング、スプリングアクチュエータ、バネ回路ブレーカー付きリポジトリレイヤ)ジャージーは、春のセキュリティ、豆の検証、サーブレットフィルターの簡単な挿入などのアナログのように見えますが、春の起動はすべてではありません。ジャージーのJPAタイプのリポジトリに簡単に配線する方法はありますか?私はhttps://jersey.java.net/documentation/latest/index.htmlの文書でそれを見つけることができません。春(ブーツ)データのジャージーアナログは何ですか?@ Repoitory

+1

ジャージーは、JAX-RSのリファレンス実装である(http://docs.oracle.com/javaee/6/ tutorial/doc/giepu.html)、実際のリポジトリ層のようなものには関係しません。あなたの同僚は、JerseyがすべてのSpring Frameworkライブラリと同じ表面積をカバーしていると誤解されています。 –

+0

ありがとう、私が聞きたいと思っていたことがありますか? – Dustin

答えて

2

このように考えています。アプリケーションにはさまざまなレイヤーがあります。あなたにはサービスレイヤがあり、 "RESTレイヤ"があります。サービスレイヤーでSpringリポジトリにアクセスします。次に、RESTレイヤがあります。 Springでは、Web層の実装であるSpring MVCがあり、RESTサービスとしても使用できます。 Jerseyもあります.Jerseyは、Springとは完全に独立しています。これは、別のRESTレイヤーオプションです。

言い換えれば、Spring MVCをRESTレイヤーとして使用する場合、サービスレイヤーにSpringデータを追加することはシームレスです。しかしJerseyにはSpringとの統合もあり、Jersey RESTサービス内のサービス層でSpringを使用することができます。あなたはthis postをチェックしています。これには、これをどのように行うことができるかの例へのリンクがいくつかあります(ハッキングはありません。このアプローチを使用して、あなただけの今の春ブーツについて話をすることができますあなたのジャージーのリソースクラス

interface PetsRepository extends JpaRepository<Pets, Long> {} 

@Path("/pets") 
class PetsResource { 
    @Autowired 
    private PetsRepository repo; 
} 

にあなたの春のデータリポジトリをインジェクタすることができます。 Spring Bootは単なるブートストラップフレームワークです。それがあれば、アプリケーションなしで必要な定型的な設定を一切せずに簡単にアプリケーションをブートストラップすることができます。あなたのRESTサービス用のSpringブートを使用している場合、実際にはRESTサービスエンジンとしてSpringブート自体を使用していません。 Spring MVCをブートストラップしたり、Springデータをブートストラップするためにのみ使用しています。しかし、Spring MVCは実際のRESTサービスエンジンです。

今まで私が言ったように、JerseyはSpringを(サービスレイヤのために)統合するサポートを持っています。このサポートのため、Spring Bootでは、このサポートをシームレスに統合するためのブートストラップ構成も提供されています。したがって、上記にリンクされている例の中の手動設定を使用する代わりに、Springブートがこの設定を処理します。したがって、JerseyはRESTレイヤーとして、Spring Beanはサービスレイヤーとして使用できます。また

を参照してください以下のリンクをチェックアウト:

+0

ありがとう!私は春のmvcが春のブートの残りの層だったことを理解していない、それは多くの意味があります。私は春のブートプロジェクトの残りの層としてジャージーを使用して気にしませんでした、あなたのリンクは、春のmvcを交換するために多くの仕事を示していないようですが、私は春のブートをまったく使わないように言われています。どのように春の起動があまりにも多くの依存関係をもたらすと言う人に答えるだろうか?マイクロサービスは小さくなければならず、必要としないジャーを持っていないはずです。 – Dustin

+1

私はおそらく、マイクロサービスの「マイクロ」はアプリケーションのサイズを意味しないと主張します。依存関係については、私はすでに実装されていて戦闘テスト済みのものを実装しなければならない理由を主張したいと思います。これは、エコシステムで提供されているSpringのサービス(Springデータが含まれています)に関してこれを意味します。サービス層にSpringサポートを追加することにより、これらのサービスにアクセスすることができます。私がリンクしている例のようにSpringを使用することとSpring Bootを使用することの違いは、Spring BootがコアのSpring以外にどれくらい輸入しているかわかりません。 –

+1

..依存関係。 Spring Bootを使わずに(私がリンクしている例の1つから)プロジェクトを作成し、Spring Bootを使用してプロジェクトを作成したい場合は、See also documentationのリンクを参照してください。そして、それがどれほどの違いをもたらすかを見てください。(コアバネだけではなく、Spring Bootによって余分な依存関係が引き込まれている限り) –