springboot

SpringBootのControllerとServiceの関係は?なぜ両方必要なのか?

2019年11月7日

 

あなた
SpringBootで開発する時コントローラークラスの他にサービスクラスを作る時が多いんだけどぶっちゃけコントローラクラスだけで良くない?ダメなの?
んー。よくはない!僕も両方が必要な理由がいまいちピンと来なかった。けど今は両者の役割がよくわかる。
てんし君
あなた
早く教えてよ
はっ!!ついつい語ってしまいました笑では今回はSpringBootのControllerクラスとServiceクラスの関係について説明していきまーす!
てんし君

 

こんな方におすすめ

  • RestControllerの役割について知りたい方
  • SpringBoot初学者

Controllerは監督でServiceは選手

SpringBootにおけるコントローラクラスとサービスクラス。両者の関係性はずばり「監督と選手」です。

Controllerは司令塔

どんなスポーツでも良い監督がいないチームは負けがちですし戦術も機能しません。

プログラムもそうです。

行動を取りまとめる司令塔であるControllerが存在することでより良いプログラムが完成するのです。

Serviceは選手

サッカーをイメージしてください。

選手はそれぞれ専門の役割を持っています。

例えばGK、FW、MFなどです。

SpringBootにおけるServiceクラスはサッカーにおける選手の存在に近いです。

この時のControllerはもちろん監督です。

何か問題があったりしたときは監督に報告しますし、監督からの指示があれば従いますよね。

Serviceの役割も選手と同じです。

SpringBootではControllerとServiceがいるがメリット

何となくControllerとServiceの関係性や必要性が理解できたでしょうか。

初学者にありがちな考え方として

「なるべく一つのクラスにいろんな処理をまとめよう」

というものがあります。

確かに見かけ上はシンプルに見えるかもしれませんが、実際の業務ではまずそんな構造のプログラムを組むことはないでしょう。

なぜなら、規模の大きいプログラムを組むときはなるべくシンプルな処理ごとに分けて作って行くからです。

そうするメリットとしてはプログラムの修正がしやすいという点があります。

もし複数の処理を一つのクラスにまとめてしまっていると修正が難しくなります。

こうしたことを考えるとSpringBootにおけるControllerとServiceの両方を使って処理を実装することは非常に便利だということがわかるでしょう。

 

てんし君
すごいですよね!自分でプロジェクトを作るときも「規模が大きくなっても修正しやすいか」「他人にも理解してもらいやすい構造になっているか」を意識すると実践的なものを作れると思います。

 

プログラミングスクールに関する情報

【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】と書かれた画像
【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】

  あなたプログラミングスクールに通いたいけどたくさんありすぎてどこがいいのかわかりません。   最近はエンジニアブームということもありプログラミングスクールが増えました。 一方でたくさんありすぎてど ...

続きを見る

返金保証ありのプログラミングスクールランキング【エンジニアが選びました】と表示されたパソコンの画面
【転職保証つき】返金保証ありのプログラミングスクールランキング【エンジニアが選びました】

  あなた返金保証がついているオススメのプログラミングスクールってありますか?   結論から話すと、返金保証つきのプログラミングスクールランキングは次の通りです。   1位:DMMWEBキャンプ  【 ...

続きを見る

wordpress
【無料あり】WEB制作を学べるオンラインスクールランキング【副業で稼ぎたい方向け】

  あなたWeb制作の副業で稼ぎたいけど、どのスクールで学ぶのが良いの? スクール選びで失敗はしたくないです。   ↑このような疑問や不安を解決するべく、現役のWebエンジニアがWEB制作を学べるスク ...

続きを見る

フリーランス
無料あり:フリーランスを目指せるプログラミングスクールランキング【体験をもとに徹底分析しました】

  あなたフリーランスエンジニアを目指すことができるプログラミングスクールってありますか?   最近では、高年収や働きやすさの魅力からフリーランスエンジニアを目指す方も増えてきました。 結論から話すと ...

続きを見る

WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】と書かれた画像
WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】

  あなたWEB系の自社開発企業に就職したいです。 オススメのスクールを教えて下さい。   結論から話すと、WEB系自社開発に行きやすいスクールのランキングは以下の通り。   第1位:テックアカデミー ...

続きを見る

-springboot

S