Webアプリ開発
アノテーション | 説明 |
---|---|
@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などの定型コードの自動生成を行う。 |
DB&SQL
アノテーション | 説明 |
---|---|
@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>{
}
- interfaceに
JpaRepository
を継承させる - リポジトリクラスのクラス名は慣習的に「エンティティクラス名+Repository」とすることが多い。
- JpaRepository<Person,Long>の部分は<エンティティクラス名,
@Id
を付与したフィールドのクラス名>
REST API開発
アノテーション | 説明 |
---|---|
@RestController |
JSONやXML、文字列などを返すWebAPI用のController |
@Operation |
HTTPメソッドの処理内容の説明を記述する |
Spring Secrity
アノテーション | 説明 |
---|---|
@EnableWebSecurity |
Spring Secrityを有効にする。 セキュリティの設定には configure(HttpSecurity http) とconfigure(AuthenticationManagerBuilder auth) の設定が必要。前者はhttpリクエストのために設定で、後者はユーザのための設定。 |