子育てエンジニアブログ

子育てに励むシステムエンジニア(SE)のブログ

【Java】【Spring】よく使うアノテーションを一覧にまとめてみた

Springを使っているとアノテーションが出てきます。
そのため、私がよく使うというものや基本的なものについて一覧にまとめてみました。

基本的によく使うアノテーション

アノテーション 説明
@SpringBootApplication Spring Bootのメインクラスに付与する。
@Controller 画面を持つコントローラに付与する。戻り値のStringも文字列に対応するテンプレートを、Thymeleafでレンダリングしたものをレスポンスとする。
@Service サービスクラスに付与する。
@Repository リポジトリクラスに付与する。
@Configuration 設定を記述するクラスに付与する。@bean付与したメソッドで構成される。
@GetMapping("パス") HTTPリクエストのGETメソッドを受け付けるためのメソッドに付与する。
@PostMapping("パス") HTTPリクエストのPOSTメソッドを受け付けるためのメソッドに付与する。
@RequestParam("変数名") リクエストからクエリパラメータ、フォームパラメータなどを抽出する。指定するときは、name属性を指定する。
@PathVariable("変数名") 渡ってきたURLの値を引数に入れることができる。
@Autowired DIコンテナーが管理しているインスタンスを受け取る。
@Component Spirngのコンポーネントとして認識される。DI対象のクラスとなる。(@Autowiredで指定できるようになる。)
@DateTimeFormat フォーマットを指定して、日付型に変換してくれる。
@NumberFormat フォーマットを指定して、数値型に変換してくれる。
@ModelAttribute 自動でモデルクラスに登録する。
@Qualifier("クラス名") どのBeanを使用するか指定する。
@Bean Springが管理するBeanを定義する。
@ConfigurationProperties 定義ファイルから値を読み込み格納する。

バリデーションチェックで使うアノテーション

アノテーション 説明
@Validated Spring標準のバリデーションチェックを実施するには、引数のフォームクラスにこのアノテーションをつける必要がある。
@Valid J2EE標準のバリデーションチェックを実施するのにつける必要がある。
@Notable メソッドはNullを返すことができることをチェック。
@NotNull メソッドはNullを返すことができないことをチェック。
@NotEmpty nullか空文字でないことをチェック。
@NotBlank 文字列が空文字、null、スペースのみでないことをチェック。
@Max 最大値以下ということをチェック。
@Min 最小値以上ということをチェック。
@Size 文字列の長さをチェック。
@AssertTrue Trueかどうかチェック。
@AssertFalse Falseかどうかチェック。
@Pattern パターンと一致するかどうかチェック。正規表現を使う。
@Email メールアドレスの形式になっているかチェック。
@Range 値の範囲内かチェック。
@Length 指定した長さかチェック。
@CreditCardNumber クレジットカード番号の形式かチェック。
@URL URLの形式かチェック。

AOPでよく使うアノテーション

アノテーション 説明
@Aspect AOPのクラスには@Aspectをつける。また、DIコンテナへBean定義もするため、@Componentも一緒につける必要がある。
@After メソッド単位で付与するアノテーションで、@Acpectが付与されたクラス内で使用される。
execution内の条件に当てはまる場合、対象の処理の実行後に@Afterメソッドが実行される。
@Before 対象のメソッドの実行前に処理が実行される。
@Around 目的の処理前後にアドバイスを実行する。
@annotation 指定したアノテーションをつけているメソッドを全て対象とする。
@within 指定したクラスを全て対象とする。パッケージ名を指定する必要がある。

トランザクションで使うアノテーション

アノテーション 説明
@Transactional データベースのトランザクション制御する。

例外処理で使うアノテーション

アノテーション 説明
@AfterThrowing 対象のメソッドが異常終了(例外がスローされたとき)に処理が実行される。
@AfterReturning 対象のメソッドが正常終了した後に処理が実行される。正常終了時のメソッドの戻り値を取得することもできる。
@ExceptionHandler メソッドにつける。Exception毎の例外を実装することができる。
@ControllerAdvice アプリケーションで発生した例外をまとめることができる。

セキュリティ関連で使うアノテーション

アノテーション 説明
@EnableWebSecurity セキュリティ設定用クラスにつける。また、WebSecurityConfigurerAdapterクラスを継承する必要がある。

REST関連で使うアノテーション

アノテーション 説明
@RestController Rest用のコントローラクラスにつける。戻り値にhtml以外を指定できるようになる。(JSONなど。)
@RequestMapping @Controller、@RestControllerを付与したクラスがマッピングするURLの接頭辞を設定する。
@RequestBody エストボディーの内容をそのまま取得できる。
@PutMapping("パス") Putメソッドの場合に使う。
@DeleteMapping("パス") DELETEメソッドにつける。
@ResponseBody 戻り値がそのままレスポンスのコンテンツになる。

Spring Test関連で使うアノテーション

アノテーション 説明
@RunWIth テストをどのクラスで実行するか指定する。
@SpringBootTest このアノテーションをつけていると、SpringBoot起動後にテストを実施してくれる。
@Test テストのメソッドにつける。
@Sql このSQLを実行した後の状態でテストをしてくれる。
@AutoConfigureMockMvc Springのモックを使うためにつける。モックを使うと、画面の表示内容のテストができる。
@MockBean 通常のMockitoのモックを作成してそれをアプリケーションコンテキスト内に登録する。
@WithMockUser ログインした後にしか表示できない画面のテストを実施できる。

MyBatisのアノテーション

アノテーション 説明
@Mapper MyBatisでSQLを実行するクラスにつける。
@Select MyBatisでSelectを実行する。(ソースに直接SQLを書く場合。)
@Insert MyBatisでInsertを実行する。(ソースに直接SQLを書く場合。)
@Update MyBatisでUpdateを実行する。(ソースに直接SQLを書く場合。)
@Delete MyBatisでDeleteを実行する。(ソースに直接SQLを書く場合。)

Lombokアノテーション

アノテーション 説明
@Data getterやsetterなどを書かなくても自動で裏で作成してくれる。