業務上、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作ってみてもいいですね。