Spring Bootとは

1度使い出すとやめられない「Spring Boot」の特徴とバージョンによる変遷のまとめ。

執筆時バージョン
Java

Java SE 8

特徴

XML設定ファイルがいらない

Springがこれまで愛されなかった理由の一つにXMLによる設定ファイルがあった。XML設定ファイルでは1文字でも間違えると起動できないのでクラスの絶対名など入力が苦痛だったり、複雑になればなるほど原因の特定に苦労した。

そこでSpring FrameworkではコンポーネントスキャンやJavaConfigを導入し、XMLファイルに書いていた設定をコードでも書けるようにした。これによりXMLファイルによる不便さからは開放され、コンパイラによるチェックも受けられるようになる。

Spring Bootではそれをもう一歩進めてAuto-configurationを可能にしている。例えばspring-jdbcを利用するにはDatasourceオブジェクトの設定が必要だったりするが、それを基本的にはspring-boot-autoconfigureに定義されているConfigクラスがになってくれる。そのConfigファイルはspring-jdbcライブラリを導入したときだけ動いてくれるので、利用者はホントに必要な接続先の情報などを設定するのみ。その自動設定で不足している部分はJavaConfigを加えていけばいい。

なのでSpring BootではXML設定ファイルなしかつ必要最低限の設定でSpringを利用できる。「Springは設定ファイルが面倒だから…」と言っているような人は古い。

ライブラリのバージョン指定もおまかせ

Springに限らずJavaのプロジェクトでは複数の(OSS)プロジェクトに依存するので、ライブラリのバージョン管理に苦労する。

Spring BootではPOMファイルの提供も行っていて、その中でSpringを利用する上で必要なライブラリのバージョンが管理されている。Spring Bootがバージョンアップするタイミングでそれらもバージョンアップされるので、基本的にはSpring Bootのバージョンを気にしていれば良い。

Spring Boot用のプロジェクトのひな形は「Spring Initializer」というサイトでも作成できる。Gradleにも対応している。

バージョンによる変遷

バージョン リリース日

1.3

2015.11.16

1.4

2016.07.28

1.4

  • Spring Framework 4.3へ更新

    • コンストラクタインジェクションについては@Autowiredが不要。

    • @GetMapping, @PostMappingなどの導入。

  • テストに関する変更

    • @RunWith(SpringRunner.class) への変更

  • 新ライブラリの導入

    • Assert4j

Appendix B: 改訂履歴

  • v1.0, 2016-07-21: 初稿