アノテーション概要メモ(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
コントローラーでスローされた特定の例外に対しての処理を定義するアノテーション。 プロパティとして対象の例外クラスを指定する。