Spring Boot Starters are pre-configured dependency packages that simplify project setup in Spring Boot. They bundle commonly used libraries together so developers don’t need to manually add and manage multiple dependencies. Starters help in faster development and reduce configuration complexity.
- Provide ready-made dependency bundles for specific features (web, data, security, etc.).
- Automatically manage compatible library versions.
- Reduce boilerplate configuration in pom.xml or build. gradle.
Advantages of Spring Boot Staters
The advantages of using Starters are as mentioned below:
- Increase productivity by decreasing the Configuration time for developers.
- Managing the POM is easier since the number of dependencies to be added is decreased.
- Tested, Production-ready, and supported dependency configurations.
- No need to remember the name and version of the dependencies.
Example: Spring Boot Starter Data JPA
- This single dependency includes Hibernate, Spring Data JPA, transaction management, and other required libraries automatically.
- Earlier, developers had to manually include each related dependency. Now, a single starter handles everything.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
This gives all the required dependencies and can be seen under the Maven tab in IntelliJ IDEA.

Naming Convention
All official starters follow the pattern:
spring-boot-starter-*
*represents the specific technology or module.- It may represent web, database, logging, security, or configuration.
- Reserved prefix:
spring-bootis used only for official starters.
Third-Party Starters
Developers can create custom starters for reusable configurations.
- Name should NOT start with
spring-boot(reserved for official starters). - It should begin with the project name.
- Example:
gfg-code-template-spring-boot-starter
Types of Spring Boot Starters
Spring Boot provides starters under the org.springframework.boot group, classified into three main categories:
1. Spring Boot Application Starters
Used for building applications with specific technologies.
Name | Description |
|---|---|
| spring-boot-starter | Core starter, including auto-configuration support, logging, and YAML |
| spring-boot-starter-activemq | Starter for JMS messaging using Apache ActiveMQ |
| spring-boot-starter-amqp | Starter for using Spring AMQP and Rabbit MQ |
| spring-boot-starter-aop | Starter for aspect-oriented programming with Spring AOP and AspectJ |
| spring-boot-starter-artemis | Starter for JMS messaging using Apache Artemis |
| spring-boot-starter-batch | Starter for using Spring Batch |
| spring-boot-starter-cache | Starter for using Spring Framework’s caching support |
| spring-boot-starter-data-cassandra | Starter for using Cassandra distributed database and Spring Data Cassandra |
| spring-boot-starter-data-cassandra-reactive | Starter for using Cassandra distributed database and Spring Data Cassandra Reactive |
| spring-boot-starter-data-couchbase | Starter for using Couchbase document-oriented database and Spring Data Couchbase |
| spring-boot-starter-data-couchbase-reactive | Starter for using Couchbase document-oriented database and Spring Data Couchbase Reactive |
| spring-boot-starter-data-elasticsearch | Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch |
| spring-boot-starter-data-jdbc | Starter for using Spring Data JDBC |
| spring-boot-starter-data-jpa | Starter for using Spring Data JPA with Hibernate |
| spring-boot-starter-data-ldap | Starter for using Spring Data LDAP |
| spring-boot-starter-data-mongodb | Starter for using MongoDB document-oriented database and Spring Data MongoDB |
| spring-boot-starter-data-mongodb-reactive | Starter for using MongoDB document-oriented database and Spring Data MongoDB Reactive |
| spring-boot-starter-data-neo4j | Starter for using Neo4j graph database and Spring Data Neo4j |
| spring-boot-starter-data-r2dbc | Starter for using Spring Data R2DBC |
| spring-boot-starter-data-redis | Starter for using Redis key-value data store with Spring Data Redis and the Lettuce client |
| spring-boot-starter-data-redis-reactive | Starter for using Redis key-value data store with Spring Data Redis reactive and the Lettuce client |
| spring-boot-starter-data-rest | Starter for exposing Spring Data repositories over REST using Spring Data REST |
| spring-boot-starter-freemarker | Starter for building MVC web applications using FreeMarker views |
| spring-boot-starter-groovy-templates | Starter for building MVC web applications using Groovy Templates views |
| spring-boot-starter-hateoas | Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS |
| spring-boot-starter-integration | Starter for using Spring Integration |
| spring-boot-starter-jdbc | Starter for using JDBC with the HikariCP connection pool |
| spring-boot-starter-jersey | Starter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web |
| spring-boot-starter-jooq | Starter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc |
| spring-boot-starter-json | Starter for reading and writing json |
| spring-boot-starter-jta-atomikos | Starter for JTA transactions using Atomikos |
| spring-boot-starter-mail | Starter for using Java Mail and Spring Framework’s email sending support |
| spring-boot-starter-mustache | Starter for building web applications using Mustache views |
| spring-boot-starter-oauth2-client | Starter for using Spring Security’s OAuth2/OpenID Connect client features |
| spring-boot-starter-oauth2-resource-server | Starter for using Spring Security’s OAuth2 resource server features |
| spring-boot-starter-quartz | Starter for using the Quartz scheduler |
| spring-boot-starter-rsocket | Starter for building RSocket clients and servers |
| spring-boot-starter-security | Starter for using Spring Security |
| spring-boot-starter-test | Starter for testing Spring Boot applications with libraries including JUnit Jupiter, Hamcrest and Mockito |
| spring-boot-starter-thymeleaf | Starter for building MVC web applications using Thymeleaf views |
| spring-boot-starter-validation | Starter for using Java Bean Validation with Hibernate Validator |
| spring-boot-starter-web | Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container. |
| spring-boot-starter-web-services | Starter for using Spring Web Services |
| spring-boot-starter-webflux | Starter for building WebFlux applications using Spring Framework’s Reactive Web support |
| spring-boot-starter-websocket | Starter for building WebSocket applications using Spring Framework’s WebSocket support |
2. Spring Boot Production Starters
Used for monitoring and managing applications in production.
Name | Description |
|---|---|
| spring-boot-starter-actuator | Starter for using Spring Boot’s Actuator which provides production-ready features to help you monitor and manage your application |
3. Spring Boot Technical Starters
Used to change or configure underlying technologies.
Name | Description |
|---|---|
| spring-boot-starter-jetty | Starter for using Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat |
| spring-boot-starter-log4j2 | Starter for using Log4j2 for logging. An alternative to spring-boot-starter-logging |
| spring-boot-starter-logging | Starter for logging using Logback. Default logging starter |
| spring-boot-starter-reactor-netty | Starter for using Reactor Netty as the embedded reactive HTTP server. |
| spring-boot-starter-tomcat | Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web |
| spring-boot-starter-undertow | Starter for using Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat |