【Spring Boot】アノテーション
| アノテーション | 説明 |
|---|---|
@Controller |
HTMLページを返すときに使用する。 |
@RequestMapping |
クライアントからのリクエストに対してメソッドやハンドラをマッピングする。次の5種類のリクエストを受け取れる(GET、POST、PUT、DELETE、PATCH) |
@RequestParam |
リクエストの値をメソッド引数にバインドする。 |
@PathVariable |
URLテンプレート変数の値をメソッド引数にバインドする。 |
@RequiredArgsConstructor |
コンストラクタを自動生成する。finalフィールドのみ値がセットされる。 |
@GetMapping |
HTTPのGETリクエストを受け付ける。 |
@PostMapping |
HTTPのPOSTリクエストを受け付ける。 |
@AutoWired |
コントローラクラス起動時に発動する。 コンストラクタインジェクションという手法が推奨されている。コンストラクタが1つしかない場合は記述を省略できる。 |
@Data |
Lombokの@Dataアノテーション。Getter、Setter、toStringなどの定型コードの自動生成を行う。 |
| アノテーション | 説明 |
|---|---|
@Entity |
DBのテーブルのレコードを表すJavaのクラスをエンティティクラスという。 |
@Table |
エンティティに対応付けるDBのテーブル名を指す。 |
@Id |
テーブルの主キーを表す。複数のフィールドにこのアノテーションを付与すると複合主キーになる。 |
@GeneratedValue |
@Idと組み合わせて使う。主キーが自動採番されることを表す。 |
@Column |
Javaのフィールドと、テーブルのカラムを対応付ける。フィールド名とカラム名が同一の場合は省略可能 |
@Repository |
マーカーインターフェース。このアノテーションを付与したインターフェースがリポジトリであること示す。 |
@Tableの使い方以下のように記述するとJavaのPersonクラスとDBのpersonテーブルを対応付けることを意味する。
@Table(name=person)
public class Person{
}
@Columnの使い方以下のように記述するとJavaのageフィールドとテーブルのAge列を対応付けることを意味する。
@Column(name=Age)
private String age;
@Repositoryの使い方以下のようなエンティティクラスがあった場合、
@Entity
@Table(name=person)
public class Person{
@Id
@GeneratedValue
private long id;
}
リポジトリクラスは次のようになる。
public interface PersonRepository extends JpaRepository<Person,Long>{
}
JpaRepositoryを継承させる@Idを付与したフィールドのクラス名>| アノテーション | 説明 |
|---|---|
@RestController |
JSONやXML、文字列などを返すWebAPI用のController |
@Operation |
HTTPメソッドの処理内容の説明を記述する |
| アノテーション | 説明 |
|---|---|
@EnableWebSecurity |
Spring Secrityを有効にする。 セキュリティの設定には configure(HttpSecurity http)とconfigure(AuthenticationManagerBuilder auth)の設定が必要。前者はhttpリクエストのために設定で、後者はユーザのための設定。 |