0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Spring Framework] クラス名から分かるクラスごとの各役割

Last updated at Posted at 2024-12-24

本記事について

業務でSpringBootのクラスの各役割について学んだ。

クラスごとの役割の種類

Controller
Service
Configuration
Interface
Entity
Repository
Utility
Exception
Advice
Interceptor

各役割

Controller

Controllerとは、主にクライアントからのリクエストを受け取って、最終的にレスポンスを返す役割。

ロジックについてはController内では行わず、Serviceのメソッドを実行する。

処理を大まかにcontrol(操作)しているイメージ。

Service

Serviceとは、Controllerでもあげた通りロジックを持たせる部分。

Serviceクラスにロジックを集中させることにより、可読性があがる。

ただ、1部のロジックについてはService内では持たせずに他のクラス(Utilityなど)に持たせた方が良い場合がある。

Configuration

Beanのデータを格納しているクラス。
そのため、主にプロパティのデータを格納していた。

getterやsetterも必要

Interface

データを呼び出す処理を、Interfaceのクラスで定義しているイメージ。

調べてみたところ、RESTクライアントをを使用する場合はInterfaceとするのが良いとのこと。
現場によってルールが違いそうなので注意したい

Entity

Entityは、データベースのテーブル構造を表している。
テーブルの内容をオブジェクトに格納する。

Repository

Repositoryは、APIやデータベースにアクセスする際に使用される。
Repositoryパッケージの中にEntityがあるイメージ。

Utility

Utilityは複数のクラスで使用しそうな処理をstatic領域において、簡単に呼び出せるようにするクラス。
StringからIntに型を変換するような処理や、共通で使用できそうな汎用的な処理を置いておくイメージ。

Exception

Exceptionクラスは、名前の通りエラーエクセプションの情報を保持するクラス。

基本的に〇〇Exceptionクラスを継承して使用する。
RuntimeExceptionクラスを継承して独自のExeptionを作ることが多い。

Advice

Adviceクラスは、throwされたExceptionの処理を共通化するクラス。

Adviceクラスで@CotrollerAdviceと指定すれば、@CotrollerのついたコントローラークラスでExceptionがthrowされた際に、Adviceクラスの処理に移行する。

Interceptor

Interceptorは、コントローラーの前や、特定のクラスを実行する前に実行したい処理がある場合に、使用するクラス。

事前に実行したい共通処理がある場合に重宝する。

例えば、APIを実行するための認証情報を取得する処理など入れたりする。

おわりに

Spring関係なく、Javaのコードでも使用するものも多かったが、Springでさらに役割が分別されており、可読性が高いと感じた。

他のフレームワークだとどのようなクラスの構成になるのかなどが気になった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?