0
0

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

Posted at

Spring Bootのアノテーションの一覧です。
間違い等あればご指摘ください。

@SpringBoot

メインメソッドを含んだクラスに付与すると「SpringBootアプリケーション」と認識される

@Controller

SpringMVCで、アプリケーション層のコントローラーに付与 Javaクラスに付与すると、このクラスはコントローラーと認識してくれる。 thymeleafを使用したHTMLをレスポンスするときに使用

@RestController

jsonやxmlをレスポンスするときに使用 RestAPI、もしくはRestfulAPIを呼び出す時はReact.jsなどのFEから呼び出す必要がある

Dependency Injection

@Autowired

依存性の注入 インスタンス生成するクラスに付与

@Component

@Controller@Service@Repogitory@RestController@Configration@RestControllerAdviceの用途以外のインスタンス生成対象のクラスに付与

@ComponentScan

別パッケージのコンポーネントを使用するときに付与 @Component@Serviceなどを付与してもインポートできない場合に使う

@Service

ドメイン層の「業務処理」に付与。業務ロジックを@Serviceクラスに書く 業務処理系のクラスを@Autowiredしたい場合に書く。

@Repogitory

インフラストラクチャ層のデータベースアクセス処理に付与 @Serviceと同じく@Autowiredしたい場合に書く。 ORMがDataJPAの時は不要。

通信形式(GET POST PUT DELETE)

@GetMapping

  • URLに入力フォームのラベル及び、値が付く通信形式で、メソッドとマッピングさせる
  • DBからデータを取得する通信形式

@PostMapping

URLに入力フォームのラベル及び、値が付かない通信形式で、メソッドとマッピングさせる

@RequestMapping

URLとクラスやメソッドとマッピングさせる。 GETやPOSTなどの通信形式も指定できる

属性 説明
value URLを指定
method method=RequestMethod.POSTなど

@RequestParam()

リクエスト(クエリ)パラメーターや、リクエストボディを受け取ることが出来る
属性 説明
name value この二つは同じ
required パラメーターはデフォルトでは必須のため、パラメーター指定を任意にする場合、falseを指定
defaultValue リクエストで値を受け取るか、判らない場合に付与

Lombok

@Data

セッター・ゲッターメソッドが自動生成されるほか、toStringなど、オブジェクトクラスに定義されているメソッドを自動生成

@NoArgsConstructor

引数のないコンストラクタが自動生成される

@AllArgsConstructor

全てのメンバ変数を引数としたコンストラクタが生成される

モデル

@Model

主にViewに値を渡すときに使用

@ModelAttribute

formの入力項目(name属性)と一致するフィールドに値が設定される インスタンス化される このアノテーションを使うとmodel.addAttribute();は不要になる

セッション

@SessionAttribute

Spring Sessionという名称でクラスに設定すると、入力フォームの値が保持される。 使用する際はインスタンス生成するメソッドを作成。

入力内容の検証

@Valid

単一入力チェックをする際に用いる

@Validated

フィールドの検証順序を制御したり、複数の検証をまとめたりする機能がある。 @Validより扱いが機能が多い分、難しい

ORM

@table

DataJPA使用時に利用可能 引数に任意の名前を渡すことでテーブル名を指定することができて省略も可能。その場合はクラス名がテーブル名となる。

@Entity

エンティティクラスに使用 DBに登録するデータの変数などを定義 Data JPAの時に使用

@Mapper

MyBatisを利用する場合に使用可能。 @Mapperを利用する場合はMavenの場合、pom.xmlに依存関係を記述 @Mapperの役割はxmlファイルに記述しているインターフェース内のSQLを実行するためのメソッドを動かす

@MapperScan
@Mapperアノテーションが記述されているクラスのパスを設定してコントローラークラスに認識させる。
@Mapperだけ記述してエラーになるようなら@MapperScanを用いるか、xmlファイルの内容を見直すかになる。

@IdClass(mainPrimaryKey.class)
正規化されていないDBでエンティティクラスに付与するもの
テーブルで複数主キーを設定していれば必要になるクラスで、主キーの数だけフィールドを定義する
@IdClassを付与したクラスは上記クラスのフィールドを持つ必要がある
あとは自由にフィールドを定義できる

@Builder
特定のクラスをインスタンス化するときに使用する技術で、オブジェクトの生成過程を抽象化し、動的なオブジェクト生成が可能
複数のコンストラクタを設定しなくても、様々なフィールドを持ったオブジェクトを柔軟に定義でき、引数の挿入順序を自由に設定できる

その他

@EqualsAndHashCode Objectクラスのequals()メソッドとHashcode()メソッドを自動生成

属性
callSuper=(true false) メソッドを自動生成し、親クラスのフィールドまでをカバーするか設定

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?