Bootのよく使うアノテーションのまとめ。詳細は省いてあるので、公式のJavaDocを読むこと。Injectionのために使う。最近はコンストラクタインジェクションが推奨されている。@Beanクラスのインスタンス生成に使用するメソッドを対応付けるためのもの。@Autowiredでインスタンスを生成するとき、このメソッドが使われる。Configurationが作動しなくなり、不具合の原因になるので注意。Injectionして使いたいクラスに付与する。@ConfigurationSpringだとXMLで書くような設定をソースで書く場合、クラスに付与する。サービスクラスに使うもの@Serviceサービスクラスに付与する。現時点では、@Componentとほぼ同じ役割と思ってよい。@Transactionalトランザクション境界を定義するために使う。どこでも使うことはできるが、制約や分かりやすさ等の面から、サービスクラスにつけると良い。コントローラクラスに使うもの@RestControllerAPIのコントローラに付与する。このコントローラでは、戻り値をStringにしたものがそのままクライアントへのレスポンスとなる。@Controllerページ(UI)を持つコントローラに付与する。このコントローラでは戻り値のStringに対応するテンプレートを、Thymeleafでレンダリングしたものがレスポンスとなる。@Responsebody@Controllerでも、これをメソッドに付けると戻り値がそのまま返る。@PostMappingURLに対するHTTPリクエストを、メソッドに対応付けるために付与する。@ModelAttributeメソッドの戻り値を、Thymeleafで使用する変数へ対応付ける。JPAを使うなら必修。これらを使ってテーブルを設計する。知っていると便利なもの@ConfigurationPropertiesapplication.propertiesに独自の値を定義できる。@ScheduledLinuxのcronのような書式で、スケジューリングされたメソッド実行を実装できる。@Retryableエラーのリトライ処理を実装できる。バリデーション関係@Validatedこれを付けておくと自動的にバリデーションしてくれる。URLパラメータや、@ConfigurationPropertiesで定義したフィールドをバリデーションする。@Nullなどフォームなどをバリデーションの際にチェックする内容を指定する。数値の最小値・最大値や、文字列のサイズ、マッチする正規表現など。TERASOLUNAのガイドラインによくまとまっている。