2
Help us understand the problem. What are the problem?

posted at

updated at

Organization

Springアノテーション

@SpringBootApplication

昔はXMLで多くの設定を書く必要があったが、この記述でそれらが自動的に行われるようになった

@Test

UnitTestの対象になる

@Controller

この表記をしておくと、必要な時に自動的にインスタンス化される
Dependency Injection(DI)という仕組みがあり、インスタンス化したオブジェクトをいつでも使えるように保管している(最後におまけで簡単な解説あり)
後述のComponentと同じ意味合いで、Controllerを付けた場合はComponentは付けない

@ControllerAdvice

これを書き加えることで、Controllerというクラスを横断した処理を作ることができる

@Component

以下のAutowiredアノテーションと関連しており、DI対象のクラスになる。対象クラスになることでAutowiredが使えるようになる。

@Autowired

DIとして実装するのに必要なアノテーション
インスタンスを生成したい変数の前にこのアノテーションを付けることで、Componentアノテーションがついたクラスの中から該当するものを探してくれ、そこでnewしたものを使いまわせる(シングルトン)

@Configuration

設定を書くのに必要
このアノテーションを付けたクラスが自動的に設定を記述するクラスだと認識される

@RequestMapping

@RequestMapping("/sample")という書き方をすると、「/sample」というURLにアクセスしたときに処理が行われる
めっちゃ丁寧に説明している記事を見つけたので、参考までにリンクを共有します

@GetMapping

@GetMapping("/test")という書き方をすると、「/test」というURLにアクセスしたときにGETの場合メソッドの処理が行われる

@PostMapping

@PostMapping("/test")という書き方をすると、「/test」というURLにアクセスしたときPOSTの場合メソッドの処理が行われる

@ExceptionHandler

このアノテーションの後に()でエラー内容を書くことで、エラーが起きた時にこのアノテーションを付けたメソッドが呼ばれる。すべてのコントローラで書く際はControllerAdviceアノテーションを付けたクラスで対応できる。

@Transactional

トランザクション処理として行われる

バリデーション

@NotNull

NotNull制約を付けることができる

@NotBlank

フォームなどでブランク(空欄)のときにエラーが出せる

@Size

この後に(min = 1, max = 20)などの形で入力のバリデーションを付けることができる

おまけ:DI(Dependency Injection)

日本語訳すると依存性の注入。
密な結合になると単体テストがしづらくなるが、疎な結合にすることで他とつながるシステムでも機能ごとの単体テストをしやすくする。
具体的には、シングルトンの考え方であり、一度別の場所でインスタンス化したものを様々な場所で使いまわすといった考え方。

参考リンク(主な出典)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?