ビルドシステム

依存関係管理をサポートし、Maven Central リポジトリに公開された成果物を使用できるビルドシステムを選択することを強くお勧めします。Maven または Gradle を選択することをお勧めします。Spring Boot を他のビルドシステム (Ant など) と連携させることは可能ですが、特に十分にサポートされているわけではありません。

依存関係管理

Spring Boot の各リリースは、サポートしている依存関係のリストを提供しています。Spring Boot が管理しているため、実際には、ビルド設定でこれらの依存関係のバージョンを指定する必要はありません。Spring Boot 自体をアップグレードすると、これらの依存関係も一貫した方法でアップグレードされます。

バージョンを指定して、必要に応じて Spring Boot の推奨を上書きすることもできます。

厳選されたリストには、Spring Boot で使用できるすべての Spring モジュールと、サードパーティライブラリの洗練されたリストが含まれています。このリストは、GradleMaven の両方で使用できる標準の部品表(spring-boot-dependencies)として入手できます。

Spring Boot の各リリースは、Spring Framework の基本バージョンに関連付けられています。バージョンを指定しないことを強くお勧めします。

Maven

Maven で Spring Boot を使用する方法については、Spring Boot の Maven プラグインのドキュメントを参照してください。

Gradle

Gradle で Spring Boot を使用する方法については、Spring Boot の Gradle プラグインのドキュメントを参照してください。

Ant

Apache Ant+Ivy を使用して Spring Boot プロジェクトをビルドすることができます。spring-boot-antlib "AntLib" モジュールも利用可能で、Ant が実行可能な jar を作成できます。

依存関係を宣言するための一般的な ivy.xml ファイルは、次の例のようになります。

<ivy-module version="2.0">
	<info organisation="org.springframework.boot" module="spring-boot-sample-ant" />
	<configurations>
		<conf name="compile" description="everything needed to compile this module" />
		<conf name="runtime" extends="compile" description="everything needed to run this module" />
	</configurations>
	<dependencies>
		<dependency org="org.springframework.boot" name="spring-boot-starter"
			rev="${spring-boot.version}" conf="compile" />
	</dependencies>
</ivy-module>

典型的な build.xml は、次の例のようになります。

<project
	xmlns:ivy="antlib:org.apache.ivy.ant"
	xmlns:spring-boot="antlib:org.springframework.boot.ant"
	name="myapp" default="build">

	<property name="spring-boot.version" value="3.4.1" />

	<target name="resolve" description="--> retrieve dependencies with ivy">
		<ivy:retrieve pattern="lib/[conf]/[artifact]-[type]-[revision].[ext]" />
	</target>

	<target name="classpaths" depends="resolve">
		<path id="compile.classpath">
			<fileset dir="lib/compile" includes="*.jar" />
		</path>
	</target>

	<target name="init" depends="classpaths">
		<mkdir dir="build/classes" />
	</target>

	<target name="compile" depends="init" description="compile">
		<javac srcdir="src/main/java" destdir="build/classes" classpathref="compile.classpath" />
	</target>

	<target name="build" depends="compile">
		<spring-boot:exejar destfile="build/myapp.jar" classes="build/classes">
			<spring-boot:lib>
				<fileset dir="lib/runtime" />
			</spring-boot:lib>
		</spring-boot:exejar>
	</target>
</project>
spring-boot-antlib モジュールを使用しない場合は、「使い方 ガイド」の spring-boot-antlib を使用せずに Ant から実行可能アーカイブを構築するセクションを参照してください。

スターター

スターターは、アプリケーションに含めることができる便利な依存関係記述子のセットです。必要なすべての Spring および関連テクノロジーのワンストップショップを利用して、サンプルコードを探したり、依存関係記述子のコピーアンドペーストを行う必要はありません。例: データベースアクセスに Spring と JPA の使用を開始する場合は、プロジェクトに spring-boot-starter-data-jpa 依存関係を含めます。

スターターには、プロジェクトを迅速に立ち上げて実行するために必要な多くの依存関係と、管理された推移的な依存関係のサポートされたセットが含まれています。

名前に含まれる意味

すべての公式スターターは、spring-boot-starter-* のような命名パターンに従います。* は特定のタイプのアプリケーションです。この命名構造は、スターターを見つける必要がある場合に役立つことを目的としています。多くの IDE に Maven が統合されているため、依存関係を名前で検索できます。例: 適切な Eclipse または Spring Tools プラグインがインストールされている場合、POM エディターで ctrl-space を押し、"spring-boot-starter" と入力して完全なリストを表示できます。

独自のスターターを作成するセクションで説明したように、サードパーティのスターターは、公式の Spring Boot 成果物用に予約されているため、spring-boot で始まってはなりません。代わりに、サードパーティのスターターは通常、プロジェクトの名前で始まります。例: thirdpartyproject と呼ばれるサードパーティのスタータープロジェクトは通常、thirdpartyproject-spring-boot-starter という名前になります。

次のアプリケーションスターターは、org.springframework.boot グループで Spring Boot によって提供されます。

表 1: Spring Boot アプリケーションスターター
名前 説明

spring-boot-starter

自動構成サポート、ロギング、YAML を含むコアスターター

spring-boot-starter-activemq

Apache ActiveMQ を使用した JMS メッセージングのスターター

spring-boot-starter-amqp

Spring AMQP および Rabbit MQ を使用するためのスターター

spring-boot-starter-aop

Spring AOP および AspectJ を使用したアスペクト指向プログラミングのスターター

spring-boot-starter-artemis

Apache Artemis を使用した JMS メッセージングのスターター

spring-boot-starter-batch

Spring Batch を使用するためのスターター

spring-boot-starter-cache

Spring Framework のキャッシュサポートを使用するためのスターター

spring-boot-starter-data-cassandra

Cassandra 分散データベースおよび Spring Data Cassandra を使用するためのスターター

spring-boot-starter-data-cassandra-reactive

Cassandra 分散データベースおよび Spring Data Cassandra Reactive を使用するためのスターター

spring-boot-starter-data-couchbase

Couchbase ドキュメント指向データベースおよび Spring Data Couchbase を使用するためのスターター

spring-boot-starter-data-couchbase-reactive

Couchbase ドキュメント指向データベースおよび Spring Data Couchbase Reactive を使用するためのスターター

spring-boot-starter-data-elasticsearch

Elasticsearch 検索および分析エンジンと Spring Data Elasticsearch を使用するためのスターター

spring-boot-starter-data-jdbc

Spring Data JDBC を使用するためのスターター

spring-boot-starter-data-jpa

Hibernate で Spring Data JPA を使用するためのスターター

spring-boot-starter-data-ldap

Spring Data LDAP を使用するためのスターター

spring-boot-starter-data-mongodb

MongoDB ドキュメント指向データベースと Spring Data MongoDB を使用するためのスターター

spring-boot-starter-data-mongodb-reactive

MongoDB ドキュメント指向データベースと Spring Data MongoDB リアクティブを使用するためのスターター

spring-boot-starter-data-neo4j

Neo4j グラフデータベースと Spring Data Neo4j を使用するためのスターター

spring-boot-starter-data-r2dbc

Spring Data R2DBC を使用するためのスターター

spring-boot-starter-data-redis

Spring Data Redis および Lettuce クライアントで Redis Key-Value データストアを使用するためのスターター

spring-boot-starter-data-redis-reactive

Spring Data Redis リアクティブおよび Lettuce クライアントで Redis キー値データストアを使用するためのスターター

spring-boot-starter-data-rest

Spring Data REST および Spring MVC を使用して REST 経由で Spring Data リポジトリを公開するためのスターター

spring-boot-starter-freemarker

FreeMarker ビューを使用して MVC Web アプリケーションを構築するためのスターター

spring-boot-starter-graphql

Spring GraphQL を使用して GraphQL アプリケーションを構築するためのスターター

spring-boot-starter-groovy-templates

Groovy テンプレートビューを使用して MVC Web アプリケーションを構築するためのスターター

spring-boot-starter-hateoas

Spring MVC および Spring HATEOAS を使用してハイパーメディアベースの RESTful Web アプリケーションを構築するためのスターター

spring-boot-starter-integration

Spring Integration を使用するためのスターター

spring-boot-starter-jdbc

HikariCP 接続プールで JDBC を使用するためのスターター

spring-boot-starter-jersey

JAX-RS および Jersey を使用して RESTful Web アプリケーションを構築するためのスターター。spring-boot-starter-web の代替

spring-boot-starter-jooq

jOOQ を使用して JDBC で SQL データベースにアクセスするためのスターター。spring-boot-starter-data-jpa または spring-boot-starter-jdbc の代替

spring-boot-starter-json

JSON を読み書きするためのスターター

spring-boot-starter-mail

Java Mail および Spring Framework のメール送信サポートを使用するためのスターター

spring-boot-starter-mustache

Mustache ビューを使用して Web アプリケーションを構築するためのスターター

spring-boot-starter-oauth2-authorization-server

Spring Authorization Server 機能を使用するためのスターター

spring-boot-starter-oauth2-client

Spring Security の OAuth2/OpenID Connect クライアント機能を使用するためのスターター

spring-boot-starter-oauth2-resource-server

Spring Security の OAuth2 リソースサーバー機能を使用するためのスターター

spring-boot-starter-pulsar

Spring for Apache Pulsar を使用するためのスターター

spring-boot-starter-pulsar-reactive

Spring for Apache Pulsar Reactive を使用するためのスターター

spring-boot-starter-quartz

Quartz スケジューラーを使用するためのスターター

spring-boot-starter-rsocket

RSocket クライアントおよびサーバーを構築するためのスターター

spring-boot-starter-security

Spring Security を使用するためのスターター

spring-boot-starter-test

JUnit Jupiter、Hamcrest、Mockito などのライブラリを使用して Spring Boot アプリケーションをテストするためのスターター

spring-boot-starter-thymeleaf

Thymeleaf ビューを使用して MVC Web アプリケーションを構築するためのスターター

spring-boot-starter-validation

Hibernate Validator で Java Bean Validation を使用するためのスターター

spring-boot-starter-web

Spring MVC を使用して、RESTful を含む Web アプリケーションを構築するためのスターター。デフォルトの埋め込みコンテナーとして Tomcat を使用

spring-boot-starter-web-services

Spring Web Services を使用するためのスターター

spring-boot-starter-webflux

Spring Framework の Reactive Web サポートを使用して WebFlux アプリケーションを構築するためのスターター

spring-boot-starter-websocket

Spring Framework の MVC WebSocket サポートを使用して WebSocket アプリケーションを構築するためのスターター

アプリケーションスターターに加えて、次のスターターを使用して、本番環境対応機能を追加できます。

表 2: Spring Boot 本番スターター
名前 説明

spring-boot-starter-actuator

Spring Boot のアクチュエーターを使用するためのスターター。アプリケーションの監視と管理に役立つ本番対応機能を提供します

最後に、Spring Boot には、特定の技術ファセットを除外または交換する場合に使用できる次のスターターも含まれています。

表 3: Spring Boot テクニカルスターター
名前 説明

spring-boot-starter-jetty

Jetty を埋め込みサーブレットコンテナーとして使用するためのスターター。spring-boot-starter-tomcat の代替

spring-boot-starter-log4j2

ロギングに Log4j2 を使用するためのスターター。spring-boot-starter-logging の代替

spring-boot-starter-logging

Logback を使用したロギングのスターター。デフォルトのロギングスターター

spring-boot-starter-reactor-netty

Reactor Netty を組み込みのリアクティブ HTTP サーバーとして使用するためのスターター。

spring-boot-starter-tomcat

Tomcat を埋め込みサーブレットコンテナーとして使用するためのスターター。spring-boot-starter-web が使用するデフォルトのサーブレットコンテナースターター

spring-boot-starter-undertow

Undertow を埋め込みサーブレットコンテナーとして使用するためのスターター。spring-boot-starter-tomcat の代替

技術面を交換する方法については、Web サーバーログシステムの交換に関する使い方 ドキュメントを参照してください。

コミュニティが提供するその他のスターターのリストについては、GitHub の spring-boot-starters モジュールの README ファイル [GitHub] (英語) を参照してください。