Spring アノテーション一覧

# Spring アノテーション一覧















| カテゴリ                     | アノテーション              | 説明                                                                                       |
|------------------------------|-----------------------------|--------------------------------------------------------------------------------------------|
| **依存性注入関連**           | `@Autowired`                | 自動的にBeanを注入します。コンストラクタ、フィールド、セッターに使用可能。                  |
|                              | `@Qualifier`                | 特定のBeanを指定して注入する際に使用します。                                               |
|                              | `@Primary`                  | 優先的に注入されるBeanを指定します。                                                      |
|                              | `@Resource`                 | JSR-250標準のアノテーション。名前を指定してBeanを注入します。                              |
| **Bean定義・スコープ関連**   | `@Component`                | 汎用的なコンポーネントとしてBeanを定義します。                                             |
|                              | `@Service`                  | ビジネスロジックを実装するサービス層のクラスに使用します。                                 |
|                              | `@Repository`               | データアクセス層のクラスに使用します。例外変換の役割も持ちます。                           |
|                              | `@Controller`               | Web MVCのコントローラクラスに使用します。                                                 |
|                              | `@RestController`           | RESTful Webサービスのコントローラクラスに使用します。                                      |
|                              | `@Scope`                    | Beanのスコープ（例：シングルトン、プロトタイプ）を指定します。                            |
|                              | `@Configuration`            | 設定クラスを定義し、Bean定義を含めます。                                                  |
|                              | `@Bean`                     | メソッドの戻り値をSpringのBeanとして登録します。                                           |
| **AOP関連**                  | `@Aspect`                   | AOPのアスペクトを定義するクラスに使用します。                                              |
|                              | `@Before`                   | メソッド実行前にアドバイスを実行します。                                                  |
|                              | `@After`                    | メソッド実行後にアドバイスを実行します。                                                  |
|                              | `@AfterReturning`           | メソッドが正常終了した後にアドバイスを実行します。                                        |
|                              | `@AfterThrowing`            | メソッドが例外をスローした後にアドバイスを実行します。                                     |
|                              | `@Around`                   | メソッドの前後にアドバイスを実行します。                                                  |
| **トランザクション関連**      | `@Transactional`            | メソッドやクラスにトランザクションの境界を定義します。                                    |
| **Web関連**                  | `@RequestMapping`           | 特定のURLパスに対するリクエストをマッピングします。                                       |
|                              | `@GetMapping`               | `GET`リクエストを処理するためのメソッドに使用します。                                      |
|                              | `@PostMapping`              | `POST`リクエストを処理するためのメソッドに使用します。                                     |
|                              | `@PutMapping`               | `PUT`リクエストを処理するためのメソッドに使用します。                                      |
|                              | `@DeleteMapping`            | `DELETE`リクエストを処理するためのメソッドに使用します。                                   |
|                              | `@PatchMapping`             | `PATCH`リクエストを処理するためのメソッドに使用します。                                    |
|                              | `@RequestParam`             | URLのクエリパラメータをメソッドの引数として受け取ります。                                 |
|                              | `@PathVariable`             | URLパスの値をメソッドの引数として受け取ります。                                           |
|                              | `@RequestBody`              | HTTPリクエストのボディをメソッドの引数として受け取ります。                                 |
|                              | `@ResponseBody`             | メソッドの戻り値をHTTPレスポンスのボディ部分として返します。                               |
|                              | `@SessionAttributes`        | モデル属性をセッションに格納します。                                                      |
|                              | `@ModelAttribute`           | モデルオブジェクトをメソッド引数としてバインドします。                                     |
| **バリデーション関連**        | `@Valid`                    | メソッド引数が有効かどうかを検証します。                                                  |
|                              | `@NotNull`                  | フィールドがnullでないことを強制します。                                                   |
|                              | `@Size`                     | コレクション、配列、文字列のサイズが指定範囲内であることを強制します。                     |
|                              | `@Min`                      | 数値が指定された最小値以上であることを強制します。                                         |
|                              | `@Max`                      | 数値が指定された最大値以下であることを強制します。                                         |
|                              | `@Pattern`                  | 文字列が指定された正規表現に一致することを強制します。                                     |
| **その他のユーティリティ関連**| `@Value`                    | プロパティファイルや環境変数から値を注入します。                                           |
|                              | `@PropertySource`           | プロパティファイルの場所を指定し、`@Value`で使用できるようにします。                        |
|                              | `@Scheduled`                | スケジュールされたタスクを定義します。                                                     |
|                              | `@Async`                    | メソッドを非同期で実行します。                                                             |