導入
「Webアプリを作りたい」と思ったとき、必要なライブラリを1つずつ探してバージョンを揃えるのは大変です。組込みTomcat、Spring MVC、JSON変換ライブラリ……これらのバージョンの相性が悪いと、原因不明のエラーに悩まされます。
説明
Spring Bootは、「よく使う目的ごとに、相性の良いライブラリ一式をまとめたパッケージ」を用意しています。これが スターター依存(starter dependencies) です。
<!-- pom.xml(Mavenの依存関係定義ファイル)に1行足すだけ -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
spring-boot-starter-web を1行追加するだけで、以下がまとめて手に入ります。
代表的なスターターを挙げておきます。
| スターター | 用途 |
|---|---|
spring-boot-starter-web | REST APIやWebアプリを作る |
spring-boot-starter-data-jpa | データベースアクセス(JPA/Hibernate) |
spring-boot-starter-security | 認証・認可 |
spring-boot-starter-test | テスト(JUnit, Mockitoなど) |
「Webアプリを作りたいので、必要なライブラリを1つずつ集めてバージョンを揃える」のではなく、「Webアプリ用のスターターを1つ足す」だけで済む——これがスターター依存の価値です。バージョンの組み合わせもSpring Bootのチームが検証済みのため、ライブラリ同士の相性問題に悩まされにくくなります。
やってみよう
自分がこれまで作った(あるいは想像する)Webアプリに、どのスターターが必要になりそうか、上の表から選んでみましょう。DBを使うアプリなら何と何が要りそうですか。