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?

More than 1 year has passed since last update.

SpringBoot アノテーションについて

Last updated at Posted at 2023-06-13

はじめに

 私は研修の中でSpringBootを使用しておりましたが、現在オリジナルアプリ作成の中で、SpringBootを使用していますが、研修の中で理解が曖昧だった点や今回気づいた点を今後、自分自身への備忘録も兼ねてあげていこうと思います。
間違った解釈をしている箇所などありましたらコメント等でご指摘いただければと思います。

各アノテーションについて

@Autowired

このアノテーションをつけることで、都度newでインスタンスを生成する必要がなくなる。
すべてのクラスのインスタンスの生成に使えるわけではなく、使われる側で@Component/@Controller/@Service/@Repositoryといったアノテーションが付与されていることで、newせずにインスタンスの生成が可能。
@Componentなどのアノテーションがついていないクラスを@Autowiredで呼び出してもNullPointerExceptionが発生する。

@Autowired

  Sample sample;
  //@Autowiredがないと↓
  Sample sample = new Sample();

@PostMapping@GetMappingの違い

1.使用するメソッドの違い:
@GetMappingはGETメソッドに対してマッピングする。
@PostMappingはPOSTメソッドに対してマッピングする。
2.リクエストパラメータの扱いの違い:
@GetMappingでは、リクエストパラメータをURLのクエリパラメータとして受け取る(例:/example?param=value)。
@PostMappingでは、リクエストパラメータをリクエストボディ内に含めて送信する。
3.リクエストデータの安全性の違い:
@GetMappingは、リクエストパラメータがURLに含まれるため、情報がURLに表示される。
@PostMappingは、リクエストボディ内にデータを含めるため、情報がURLに直接表示されず、より安全なデータ送信が可能。

@RequestParam

個々のリクエストパラメータを直接受け取る。
コントローラメソッドの引数に付けることで、HTTPリクエストのクエリパラメータやフォームパラメータを受け取ることができる。
@RequestParamアノテーションには、いくつかのオプションな属性が存在する。
・required: パラメータが必須かどうかを指定する。デフォルトはtrueですが、falseに設定すると必須ではなくなる。
・defaultValue: パラメータのデフォルト値を指定する。パラメータが指定されていない場合に使用される。

@ModelAttribute

オブジェクトとしてリクエストパラメータを受け取る。
@ModelAttributeアノテーションを使用してオブジェクトを受け取る。リクエストパラメータの名前とオブジェクトのフィールド名が一致していれば、自動的にバインディングされる。
@ModelAttributeアノテーションには、いくつかのオプションな属性がある。
・required: パラメータが必須かどうかを指定する。デフォルトはtrueですが、falseに設定すると必須ではなくなる。
・binding: オブジェクトがバインディングされるかどうかを指定する。デフォルトは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?