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>