2017-12-21 4 views
-2

Springフレームワークでコントローラを使用してJSON形式などのクライアントまたはフロントエンドに休憩サービスを提供する場合、主にJavaロジックをコントローラとサービスの2つのレイヤに分けます。しかし、私が今見出したのは、コントローラは実装がほぼ完全に空いており、単にサービス層に委任されているということです。Springでサービスを持つRESTコントローラをマージする

いくつかの経験の後、私は、MVC Spring Frameworkのレイヤーの1つであると考えられているコントローラを、プレゼンテーションレイヤーを構築せずに簡単なRESTサービスを提供するために使用するときとは異なる意味を持ち、純粋なサービス層。何か - @Component、@RequestBodyなどのような春のアノテーションをすべて削除すると、このクラスは純粋なサービスになり、コントローラとサービスを分離する必要はありません。あなたがそれらについて話す場合でも、あなたは通常、このような何かを言う:?我々は

は大きな何かが私が行方不明だということ

がされているが、心の中で現実の世界を維持しないでください「クライアントにRESTサービスを提供しますあなたは右のコントローラは、Spring MVCのアーキテクチャでは、余分な層である

+0

あなたのプログラミングの質問は何ですか、私は逃した大きなものがありますか? ;) –

+0

Yeap。私はすべてを知っているふりをしていないし、本当に概念的なものを見逃して、この決定を後悔させるかもしれない。だから私はこの分野の専門家の意見を聞きたいと思っています:) – user20996

+0

あなたの質問と意見に基づいて具体的にする必要がありますあなたが現在いるフォーラムで奨励されていない質問、私はまだあなたの正確な質問 –

答えて

-1

を、あなたのコードを管理しやすくすることが重要であることを唯一の目的を「エイリアンが地球に降りてくる場合は、コードのかもしれないブレーキ。」:のようなものを言います。コントローラはHTTPリクエストをマッピングし、リクエストデータを取得し、これらのデータを処理するコールサービスを提供し、応答データ。

一方、サービスレイヤーは、MVCアーキテクチャーで再利用可能なタイプのレイヤーです。サービスは、必要なときに再利用できるメソッドで構成されています。サービスを使用せず、コントローラでビジネスロジックを実行するだけでは、管理がより複雑であり、読み取り可能なコードではありません。

また、識別のためだけにある注釈@Service@Repository、および@Controllerのように、あなたはまた、代わりにこれらの@Componentアノテーションを使用することができます。しかし、適切に注釈を付けることにより、コードをより読みやすくし、目的を理解できるようになります。私はあなたの質問に答えました。

+0

ありがとうございました。これは私が留意する1つのポイントです。私は自分自身でこのような決定を下さなければならないプロジェクトに取り組んでおり、私は完全に間違った方向に進んでいないと確信しています。 – user20996

関連する問題