Spring アノテーション 一覧

Spring_Boot_logo Java
スポンサーリンク

Spring Frameworkのアノテーションは、Javaのコードをより簡潔にし設定や依存関係の管理を効率化できる。

以下に主要なものを記載する。

 

DI(依存性注入)系

org.springframework.stereotype
org.springframework.beans.factory.annotation
に属するアノテーション

 

アノテーション名 ターゲット 説明
@Component class

Springが管理するBeanとしてクラスを定義する。
そclassはSpringが管理する対象として認識され、
シングルトンとして扱われる。

@Service class “@Component”アノテーションの派生。
MVC+Sモデルで表現する場合のSに相当する。
serviceの役割を示す目的で使用され、機能自体は”@Component”と差はない。
@Configuration class

そのclassがSpringの設定を行うものであること示す。
このアノテーションが付与されたクラス内で”@Bean”アノテーションを使用できる。

@Bean method

メソッドに付与し、そのメソッドの戻りのインスタンスがSpringが管理対象として認識される。
こちらもシングルトンとして扱われる。
“@Configuration”が付与されたクラス内で使用できる。

@Value field

付与したfieldの値は .properties ファイルなどから読み込むことができる。

 

例)@Value(“${name}”)
※”name”は .properties ファイルに定義している名前と同名のもの

@Autowired field
method

Springが自動的に依存性を注入(DI)するために使用する。
“@Component”や”@Bean”でSpring管理対象に含めたインスタンスと紐づけられ、手動で初期化(new)せずに使用できる。
コンストラクタ、フィールド、セッターメソッドなどに適用できる。

参考

org.springframework.stereotype (Spring Framework 6.2.5 API) - Javadoc
Spring Boot の概要から各機能の詳細までが網羅された公式リファレンスドキュメントです。開発者が最初に読むべきドキュメントです。
org.springframework.beans.factory.annotation (Spring Framework 6.2.5 API) - Javadoc
Spring Boot の概要から各機能の詳細までが網羅された公式リファレンスドキュメントです。開発者が最初に読むべきドキュメントです。

 

RestAPI系

org.springframework.web.bind.annotation に属するアノテーション

 

アノテーション名 ターゲット 説明
@RestController class

“@Component”アノテーションの派生
このアノテーションが付与されたclassはRest API のエンドポイントが定義されるものとして扱われる。
戻りの値も自動的にレスポンスボディに当てはめられる。

@RequestMapping

class

method

“@RestController”アノテーションが付与されたclass内で使用できる。
classに付与した場合は、引数”path”に設定した値がそのクラス内の共通部分のURIとして認識される。
methodに付与する場合は、引数”path”に設定した値がAPIのエンドポイントとして機能するようになる。
併せてHTTPメソッドも指定でき(”GET”など)、
この場合は後述する”@GetMapping”などを使用するほうが使いやすい。

 

例)@RequestMapping(path = “/user”, method = “GET”)

@GetMapping method

“@RequestMapping”アノテーションのGETリクエスト専用バージョン。
付与されたmethodはHTTPメソッドの”GET”のAPIのエンドポイントとして機能するようになる。
他にも”POST”や”PUT”や”DELETE”などHTTPメソッドの種類分、Mappingアノテーションが存在する。

 

例)@GetMapping(path = “/user”)

@PostMapping method

付与されたmethodはHTTPメソッドの”POST”のAPIのエンドポイントとして機能するようになる。

@PutMapping method

付与されたmethodはHTTPメソッドの”PUT”のAPIのエンドポイントとして機能するようになる。

@DeleteMapping method

付与されたmethodはHTTPメソッドの”DELETE”のAPIのエンドポイントとして機能するようになる。

@RequestParam parameter

クエリパラメーターを取得できる。
クエリパラメーターと変数名を合わせるとバインドできる。

@PathVariable parameter

パスパラメーターを取得できる。
URIの変数化している部分の変数名と合わせるとバインドできる。

@RequestHeader parameter

リクエストヘッダーのパラメーターを取得できる。
取得したいヘッダーのkey名と変数名を合わせるとバインドできる。

@RequestBody parameter

リクエストボディのパラメーターを取得できる。
classオブジェクトでバインドする場合、パラメーター名とフィールド(変数)名を合わせることで紐づけられる。

参考

org.springframework.web.bind.annotation (Spring Framework 6.2.5 API) - Javadoc
Spring Boot の概要から各機能の詳細までが網羅された公式リファレンスドキュメントです。開発者が最初に読むべきドキュメントです。

 

トランザクション系

org.springframework.transaction.annotation に属するアノテーション

 

アノテーション名 ターゲット 説明
@Transactional method

DBのトランザクション管理を制御する。
付与されたclass内でDB接続を行う場合、例外発生時にロールバックの制御を行える。
デフォルトではRunTimeException発生時にロールバックを行い、特定の例外発生時のみロールバックさせるように設定も可能。

 

例)@Transactional(rollbackFor = Exception.class)

参考

org.springframework.transaction.annotation (Spring Framework 6.2.5 API) - Javadoc
Spring Boot の概要から各機能の詳細までが網羅された公式リファレンスドキュメントです。開発者が最初に読むべきドキュメントです。

 

コメント

タイトルとURLをコピーしました