LoginSignup
4
2

More than 1 year has passed since last update.

Spring Bootで使われるアノテーションをまとめてみた

Posted at

業務上、Spring Bootを使っており、その中で結構な数のアノテーション(@でクラスとかにかかれているやつ)が出てくるので備忘録も兼ねてまとめてみました。

#「Spring Boot」とは
Spring Framework(Javaのフレームワーク)のひとつでアプリケーションを作るための仕組み。
Spring Boot以外にも下記リンクあるような様々なプロダクトが用意されている。
Spring | Projects

Spring Bootの特徴として、
 ・あらかじめオススメのプロジェクト(プロダクト)の組み合わせが含まれている
 ・自動で設定が含まれている
 ・組み込みサーバが同梱されている
といったことが挙げられる。

#アノテーション一覧
個人的に重要そうだなと思ったアノテーションは太字にしています。

アノテーション 説明
@SpringBootApprication Springアプリケーションにつけることで、諸々の設定が不要になる。後述する@EnableAutoConfiguration@Configuration@ComponentScanを組み合わせたもの。
@RestController 「REST」」Webアプリケーションにおけるリクエストを受けるクラスであることを表す。
@GetMapping HTTPリクエストのメソッドにGETがあるように、GETメソッドを受け付けることを表す。PostMappingなども存在する。
@Configuration 「JavaConfig」用のクラスであることを表す
@Bean 「DIコンテナ」に管理させたいBean(実装)を生成するメソッドに付与する。
@EnableAutoConfiguration Spring Bootの自動設定を有効にする。
@Import @Configurationをつけたクラスを引数に設定する。例) @Import(AppConfig.class)
@Autowired DIコンテナで管理するフィールドに付与する。自動的に管理されているDIコンテナから合致する型のオブジェクトをインジェクションする。(オート・ワイヤリング)
@ComponentScan 同じパッケージ配下で、DIコンテナに登録するクラスを走査する
@Controller Spring MVCのコントローラであることを示す
@Service サービスクラスであることを示す。@Componentと機能的には違いはなし
@Repository リポジトリクラスに付与する。
@Transactional クラスをDIコンテナから取得し、そのクラスのメソッドが呼ばれた時、自動的にDBトランザクションの制御をする
@Query クエリ文に付与する
@ResponseStatus HTTPのリクエストに対するレスポンスステータスを指定する。例) @ResponseStatus(HttpStatus.OK)
@RequestBody HTTPリクエストの時に設定するBody部に付与する
@PageableDefault リクエストパラメータでパラメータが指定されなかった際に、デフォルト値を設定するために付与する
@Validated 情報の入力値チェックを行う際に付与する

#./mvnwコマンド一覧
以下spring bootを学習する上で出てきたmvnwコマンドたち

コマンド 説明
./mvnw dependenct:tree 使用可能なライブラリの一覧を表示する
./mvnw spring-boot:run アプリケーションを「起動」する
./mvnw package アプリケーションのjarファイルを作成する

若干説明が中途半端で分かりづらいところがありましたので、個別で調べていきたいと思います。あと、RestControllerでなにかAPI作ってみてもいいですね。

4
2
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
4
2