Spring Boot Starters

Published
Updated

Spring Boot application starters are provided by the Spring project and offer a number of pre-defined configurations for integrating your application with a variety of different technologies. Depending on what functionality your application requires, you may need a different starter. This page outlines the most common dependencies and the respective Maven pom.xml snippets you will need to integrate them.

Common

spring-boot-starter

This is Spring’s core starter which will provide many of the expected auto-configuration features, YAML configs, and logging support.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>3.1.2</version>
</dependency>

spring-boot-starter-logging

Starter for using Logback as the integrated application logger.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
    <version>3.1.2</version>
</dependency>

Web

spring-boot-starter-web

Spring starter for building web services, MVC, RESTful apps, and more. Provides an embedded Tomcat server.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>3.1.2</version>
</dependency>

spring-boot-starter-web-services

Starter for using Spring Web Services

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web-services</artifactId>
    <version>3.1.2</version>
</dependency>

spring-boot-starter-thymeleaf

Starter for building MVC web applications using Thymeleaf pages and templates

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
    <version>3.1.2</version>
</dependency>

spring-boot-starter-mustache

Starter for building MVC web applications using Mustache pages and templates

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mustache</artifactId>
    <version>3.1.2</version>
</dependency>

spring-boot-starter-groovy-templates

Starter for building MVC web applications using Groovy templates

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-groovy-templates</artifactId>
    <version>3.1.2</version>
</dependency>

spring-boot-starter-webflux

Starter for building reactive web applications using WebFlux

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
    <version>3.1.2</version>
</dependency>

spring-boot-starter-websocket

Starter for building realtime web socket applications using Spring’s support for web sockets

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-websocket</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-rsocket

Starter for building realtime web socket client / server applications using RSocket

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-rsocket</artifactId>
  <version>3.1.2</version>
</dependency>

APIs and Endpoints

spring-boot-starter-data-rest

Starter for exposing Spring Data repositories over REST.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-rest</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-json

Starter for JSON read / write support within Spring.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-json</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-hateoas

Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-hateoas</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-jersey

Starter for building RESTful web applications using JAX-RS and Jersey. This is an alias of spring-boot-starter-web

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jersey</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-validation

Starter for JSR303 annotations and bean validation using Hibernate validator.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-validation</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-actuator

Starter for Spring’s actuator which can help you manage your application

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
  <version>3.1.2</version>
</dependency>

Data Persistence

spring-boot-starter-jdbc

This is a lightweight starter which gives you a managed HikariCP connection pool and JDBC layer.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-jdbc

This starter provides access to Spring’s ORM and JDBC layer which can automatically connect to relational databases. You can use JdbcTemplates to make it easy to work with SQL databases and JDBC.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jdbc</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-r2dbc

This starter provides access to Spring’s R2DBC library which provides reactive, stream based connections to relational databases as a drop-in replacement to JDBC.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-r2dbc</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-jpa

This is the starter for using Spring Data JPA with Hibernate as an ORM.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-cassandra

This is the starter for using Cassandra distributed database and Spring Data Cassandra.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-cassandra</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-couchbase

This is the starter for using Couchbase document-oriented database and Spring Data Couchbase.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-couchbase</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-mongodb

This is the starter for using MongoDB document-oriented database and Spring Data MongoDB.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-mongodb</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-redis

This is the starter for using Redis key-value data store and caching using Spring Data Redis and the Lettuce client.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-neo4j

This is the starter for using the Neo4j graph database and Spring Data Neo4j.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-neo4j</artifactId>
  <version>3.1.2</version>
</dependency>

Messaging

spring-boot-starter-mail

Starter for using Java’s mail libraries and adds support to Spring Framework for sending email.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-mail</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-amqp

This provides access to the AMQP (Advanced Message Queuing Protocol) which standardizes messaging and MQ protocols.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-amqp</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-activemq

This is the JMS starter for Apache’s ActiveMQ library.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-activemq</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-artemis

This is the JMS starter for Apache’s highly scalable message broker Artemis.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-artemis</artifactId>
  <version>3.1.2</version>
</dependency>

Search and Analytics

spring-boot-starter-data-elasticsearch

Starter for using the Elasticsearch analytics and search engine.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-solr

Starter for using Apache Solr’s search platform.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-solr</artifactId>
  <version>2.4.13</version>
</dependency>

Security

spring-boot-starter-security

Starter for adding in Spring Security to your application.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-oauth2-client

Starter for using Spring Security’s OAuth2 / OpenID Connect client features

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-oauth2-client</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-oauth2-resource-server

Starter for using Spring Security’s OAuth2 resource server features

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-data-ldap

Starter for using Spring Security’s LDAP integration.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-ldap</artifactId>
  <version>3.1.2</version>
</dependency>

Miscellaneous

spring-boot-starter-test

Starter for adding in unit test integration and mocking of services using Junit, Hamcrest, and Mockito

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-quartz

Starter for adding in support for Quartz scheduler

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-quartz</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-batch

Starter for adding in support for flat file and batch file processing

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-batch</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-cache

Starter for adding in support for caching and retention

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-cache</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-aop

Starter for adding in support for aspect oriented programming with Spring AOP and AspectJ

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-aop</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-jetty

Starter for using Jetty as the embedded servlet container instead of Tomcat.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jetty</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-undertow

Starter for using Undertow as the embedded servlet container instead of Tomcat.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-undertow</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-reactor-netty

Starter for using Netty (NIO non-blocking server) as the embedded reactive HTTP server.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-reactor-netty</artifactId>
  <version>3.1.2</version>
</dependency>

spring-boot-starter-log4j2

Starter for using Log4j2 for application logging instead of Logback.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-log4j2</artifactId>
  <version>3.1.2</version>
</dependency>