Open1

アノテーション概要メモ(Spring Boot)

ふじしろふじしろ

@Data

lombokによって提供されるアノテーション。
Getter/Setterを自動実装してくれる。

@Transactional

サービスに付与することで、RuntimeException および Error 発生時にロールバックする(デフォルトの場合)
リファレンス:@Transactionalを使用する
javadoc:Transactional (Spring Framework 5.3.23 API)

@RequiredArgsConstructor

lombokによって提供されるアノテーション。
引数ありのコンストラクタを自動実装してくれる。
参考:Lombokが便利だなと感じたので書いてみた - Qiita

@Entity

該当のクラスがエンティティであることを宣言する

@Id

プライマリキー(主キー)となるフィールドを宣言する

@GeneratedValue

主キー列にユニークな値を自動で生成・付与する方法を指定する。

@DateTimeFormat

LocalDate型に値をセットするために利用するアノテーション。
文字列のパターンを宣言するもの。

@NotBlank

必須チェックのためのアノテーション。
NULL、空文字、半角空白のみ、タブのみの場合NGになる。ただし全角スペースはパスする。
LocalDate形式には使おうとするとエラーになる。
参考:@NotBlank、@NotEmpty、@NotNullの挙動の違いをSpring Boot + Thymeleafで整理する - Qiita

@NotEmpty

必須チェックのためのアノテーション。
NULL、空文字の場合NGになる。空白やタブはパスする。
参考:@NotBlank、@NotEmpty、@NotNullの挙動の違いをSpring Boot + Thymeleafで整理する - Qiita

@NotNull

必須チェックのためのアノテーション。
NULLの場合NGになる。空文字やタブはパスする。
参考:@NotBlank、@NotEmpty、@NotNullの挙動の違いをSpring Boot + Thymeleafで整理する - Qiita

@Valid

Javaが標準で持つバリデーション仕様のアノテーション(JSR303 Bean Validation)
参考:JSR303の@ValidとSpringBootの@Validatedの違い - エキサイト TechBlog.

@Validated

Springフレームワークが持つ[[#@Valid]]を拡張したバリデーションが可能になるアノテーション
参考:JSR303の@ValidとSpringBootの@Validatedの違い - エキサイト TechBlog.

@ModelAttribute

モデルにオブジェクトを追加するのに使用するアノテーション。
単独で宣言すると、全てのモデルで共通して使えるオブジェクトにすることができる。
引数で宣言した場合は、宣言されたメソッド内のモデルにオブジェクトを追加する。この処理は、Model.addAttributeメソッドとほぼ同じ。

参考:[[TODOリスト課題#萩原さんに質問( ModelAttributeアノテーションとaddAttributeメソッドの使い分けについて)]]

@ControllerAdvice

MVCでエラー処理などをコントローラの共通処理としてまとめて定義できるアノテーション。
※REST APIの場合は@RestControllerAdviceになる
専用のController Adviceクラスを作成して、そこで宣言する。

Controller Adviceクラスでは以下のアノテーションを活用することが多い。

  • @InitBinder
  • @ModelAttribute
  • @ExceptionHandler

参考

@ExceptionHandler

コントローラーでスローされた特定の例外に対しての処理を定義するアノテーション。 プロパティとして対象の例外クラスを指定する。

参考:【Spring Boot】Controller Advice