3
1

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 アノテーション一覧

3
Last updated at Posted at 2024-08-31

Spring / Spring Boot アノテーション一覧(改善版)

参考文献:

カテゴリ アノテーション 説明
依存性注入関連 @Autowired 自動的にBeanを注入します。コンストラクタ、フィールド、セッターに使用可能。Spring 4.3以降、単一コンストラクタの場合は省略可能。
@Qualifier 同じ型のBeanが複数ある場合、特定のBeanを指定して注入します。
@Primary 同じ型のBeanが複数ある場合、優先的に注入されるBeanを指定します。
@Resource JSR-250標準のアノテーション。名前ベースでBeanを注入します(@Autowiredは型ベース)。
@Inject JSR-330標準のアノテーション。@Autowiredとほぼ同等ですがrequired属性がありません。
@Lazy Beanの初期化を遅延させます(実際に使用されるまで初期化しない)。
Bean定義・スコープ関連 @Component 汎用的なコンポーネントとしてBeanを定義します。ステレオタイプアノテーションの基底です。
@Service ビジネスロジックを実装するサービス層のクラスに使用します。@Componentの特殊化。
@Repository データアクセス層のクラスに使用します。永続化例外の自動変換機能も持ちます。
@Controller Spring MVCのコントローラクラスに使用します。ビューを返す場合に使用。
@RestController @Controller + @ResponseBodyの複合アノテーション。RESTful API用。
@Scope Beanのスコープを指定します(singleton, prototype, request, session, application)。
@Configuration Java Configクラスを定義し、@Beanメソッドを含めます。
@Bean メソッドの戻り値をSpring Beanとして登録します。
@ComponentScan 指定パッケージ配下のコンポーネントを自動スキャンします。
Spring Boot専用 @SpringBootApplication @Configuration + @EnableAutoConfiguration + @ComponentScanの複合アノテーション。
@EnableAutoConfiguration クラスパスに基づいて自動設定を有効化します。
@ConfigurationProperties プロパティファイルの値をPOJOにバインドします。
@EnableConfigurationProperties @ConfigurationPropertiesクラスを有効化します。
条件付きBean登録 @Conditional カスタム条件クラスに基づいてBean登録を制御します。
@ConditionalOnProperty 特定のプロパティが存在・一致する場合にBeanを登録します。
@ConditionalOnClass クラスパスに特定クラスが存在する場合にBeanを登録します。
@ConditionalOnMissingClass クラスパスに特定クラスが存在しない場合にBeanを登録します。
@ConditionalOnBean 特定のBeanが存在する場合にBeanを登録します。
@ConditionalOnMissingBean 特定のBeanが存在しない場合にBeanを登録します。
@ConditionalOnExpression SpEL式がtrueの場合にBeanを登録します。
@Profile 特定のプロファイルがアクティブな場合にBeanを登録します。
ライフサイクル関連 @PostConstruct Bean初期化後に実行されるメソッドを指定します(JSR-250標準)。
@PreDestroy Bean破棄前に実行されるメソッドを指定します(JSR-250標準)。
@DependsOn Bean初期化の順序を制御します。
AOP関連 @Aspect AOPのアスペクトを定義するクラスに使用します。
@Pointcut ポイントカット(アドバイス適用箇所)を定義します。
@Before メソッド実行前にアドバイスを実行します。
@After メソッド実行後にアドバイスを実行します(成功・失敗問わず)。
@AfterReturning メソッドが正常終了した後にアドバイスを実行します。
@AfterThrowing メソッドが例外をスローした後にアドバイスを実行します。
@Around メソッドの前後を囲んでアドバイスを実行します(最も強力)。
トランザクション関連 @Transactional メソッドやクラスにトランザクションの境界を定義します。propagation、isolation、readOnly、timeout、rollbackFor等の属性があります。
@EnableTransactionManagement アノテーションベースのトランザクション管理を有効化します。
Web関連 @RequestMapping 特定のURLパスとHTTPメソッドをマッピングします(汎用)。
@GetMapping HTTP GETリクエストを処理するためのメソッドに使用します。
@PostMapping HTTP POSTリクエストを処理するためのメソッドに使用します。
@PutMapping HTTP PUTリクエストを処理するためのメソッドに使用します。
@DeleteMapping HTTP DELETEリクエストを処理するためのメソッドに使用します。
@PatchMapping HTTP PATCHリクエストを処理するためのメソッドに使用します。
@RequestParam URLのクエリパラメータをメソッドの引数として受け取ります。
@PathVariable URLパスの変数をメソッドの引数として受け取ります。
@RequestBody HTTPリクエストのボディをオブジェクトにマッピングします。
@ResponseBody メソッドの戻り値をHTTPレスポンスのボディとして返します。
@RequestHeader HTTPヘッダーの値をメソッドの引数として受け取ります。
@CookieValue Cookie値をメソッドの引数として受け取ります。
@ResponseStatus HTTPステータスコードを指定します。
@SessionAttributes モデル属性をHTTPセッションに格納します。
@SessionAttribute セッション属性を取得します。
@ModelAttribute モデルオブジェクトをメソッド引数としてバインドします。
@RequestAttribute リクエスト属性を取得します。
@CrossOrigin CORS(Cross-Origin Resource Sharing)を有効化します。
例外処理関連 @ExceptionHandler 特定の例外を処理するメソッドを定義します。
@ControllerAdvice 複数コントローラ共通の例外処理・モデル属性を定義します。
@RestControllerAdvice @ControllerAdvice + @ResponseBodyの複合アノテーション(REST API用)。
バリデーション関連 @Valid ネストしたオブジェクトの検証をトリガーします(JSR-303標準)。
@Validated Springのバリデーション。グループ指定が可能です。
@NotNull フィールドがnullでないことを検証します。
@NotEmpty フィールドがnullおよび空でないことを検証します(文字列、コレクション)。
@NotBlank 文字列がnull、空、空白のみでないことを検証します。
@Size コレクション、配列、文字列のサイズが指定範囲内であることを検証します。
@Min 数値が指定された最小値以上であることを検証します。
@Max 数値が指定された最大値以下であることを検証します。
@Email 文字列がメールアドレス形式であることを検証します。
@Pattern 文字列が指定された正規表現に一致することを検証します。
@Past / @Future 日付が過去/未来であることを検証します。
@Positive / @Negative 数値が正数/負数であることを検証します。
@PositiveOrZero / @NegativeOrZero 数値が0以上/0以下であることを検証します。
スケジューリング・非同期 @EnableScheduling スケジュール機能を有効化します。
@Scheduled 定期実行するメソッドを定義します(cron、fixedRate、fixedDelay等)。
@EnableAsync 非同期処理を有効化します。
@Async メソッドを非同期で実行します。戻り値はvoidまたはFuture。
キャッシュ関連 @EnableCaching キャッシュ機能を有効化します。
@Cacheable メソッドの結果をキャッシュします。
@CachePut メソッド実行後、結果をキャッシュに保存します。
@CacheEvict キャッシュからエントリを削除します。
@Caching 複数のキャッシュアノテーションを組み合わせます。
テスト関連 @SpringBootTest Spring Boot統合テスト用。アプリケーションコンテキストをロードします。
@WebMvcTest MVCコントローラの単体テスト用。Web層のみをロードします。
@DataJpaTest JPAリポジトリのテスト用。インメモリDBを使用します。
@MockBean モックBeanをApplicationContextに登録します。
@MockitoBean Mockitoモックを注入します(Spring Boot 3.4以降推奨、@MockBeanの代替)。
@SpyBean スパイBeanをApplicationContextに登録します。
@TestConfiguration テスト専用の設定クラスを定義します。
@ActiveProfiles テスト時のアクティブプロファイルを指定します。
@DirtiesContext テスト後にアプリケーションコンテキストを再作成します。
Spring Data JPA関連 @Query カスタムJPQL/ネイティブSQLクエリを定義します。
@Modifying 更新・削除クエリであることを示します(@Queryと併用)。
@EnableJpaRepositories JPAリポジトリを有効化します。
@EntityListeners エンティティライフサイクルリスナーを指定します。
セキュリティ関連 @EnableWebSecurity Spring Securityを有効化します。
@EnableMethodSecurity メソッドレベルセキュリティを有効化します(Spring Security 5.6以降、旧@EnableGlobalMethodSecurity)。
@PreAuthorize メソッド実行前に認可チェックを行います。
@PostAuthorize メソッド実行後に認可チェックを行います。
@Secured ロールベースのアクセス制御を行います。
@RolesAllowed JSR-250標準のロールベースアクセス制御を行います。
その他のユーティリティ @Value プロパティファイル、環境変数、SpEL式から値を注入します。
@PropertySource プロパティファイルの場所を指定し、@Valueで使用できるようにします。
@EventListener アプリケーションイベントをリッスンするメソッドを定義します。
@Order コンポーネントの実行順序を指定します。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?