Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/spring-projects/spring-boot/llms.txt

Use this file to discover all available pages before exploring further.

Spring Boot starters are curated dependency bundles that give you a single artifact to add to your build instead of hunting down compatible individual libraries. Each starter pulls in the Spring modules, third-party libraries, and auto-configuration wiring needed for a particular technology, so your pom.xml or build.gradle stays concise and your dependency versions stay consistent.

How starters work

A starter is a regular Maven/Gradle artifact whose only job is to declare api (or compile) dependencies on the libraries that belong together. When you add a starter, Gradle or Maven resolves the full transitive dependency graph for you. Spring Boot’s auto-configuration mechanism (spring-boot-autoconfigure) detects which libraries are on the classpath and configures them automatically — no XML, no boilerplate @Bean methods required.
Starters do not contain application code. They are pure dependency descriptors. All configuration logic lives inside spring-boot-autoconfigure, which every starter inherits transitively through spring-boot-starter (the base starter).

The base starter

spring-boot-starter is the foundation every other starter builds on. Add it on its own if you only need the core auto-configuration infrastructure without a web server or other technology.
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
It provides:
  • spring-boot-autoconfigure — the auto-configuration engine
  • spring-boot-starter-logging — Logback via SLF4J (switchable to Log4j 2)
  • jakarta.annotation-api — common Jakarta EE annotations
  • snakeyaml — YAML support for application.yml

Naming convention

Official Spring Boot starters follow a strict naming pattern:
spring-boot-starter-{technology}
For example: spring-boot-starter-web, spring-boot-starter-data-jpa, spring-boot-starter-security.
Third-party starters should not start with spring-boot-, as that prefix is reserved for official Spring Boot artifacts. Community starters typically use the pattern {technology}-spring-boot-starter.

Production and test starters

Two starters sit outside the main technology categories but are used in almost every project:

spring-boot-starter-actuator

Adds Spring Boot Actuator: health checks, metrics, info endpoints, and Micrometer instrumentation. Include this in every production deployment.

spring-boot-starter-test

Bundles JUnit Jupiter, Mockito, AssertJ, Hamcrest, JSONPath, and Spring Test. Scope it to test so it never reaches your production artifact.
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

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

Starter categories

Browse the pages below to find the right starter for your use case.

Web starters

Spring MVC, WebFlux, WebSocket, GraphQL, HATEOAS, template engines, and bean validation.

Data starters

JPA, JDBC, MongoDB, Redis, Elasticsearch, R2DBC, Neo4j, Cassandra, jOOQ, and Spring Batch.

Messaging starters

RabbitMQ (AMQP), Apache Kafka, Apache Pulsar, JMS, ActiveMQ, Artemis, Spring Integration, and RSocket.

Security starters

Spring Security, OAuth 2.0 client and resource server, Authorization Server, and SAML 2.0.

Version management

When you use the Spring Boot parent POM or the Spring Boot BOM (spring-boot-dependencies), you do not need to declare a version for any starter. The BOM manages a tested, compatible set of versions for you.
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>3.5.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Community starters

The Spring Boot project maintains a curated list of community-contributed starters for technologies not covered by the official set — including Apache Camel, MyBatis, Vaadin, Okta, Sentry, and many others. See the starter README on GitHub for the full list.

Build docs developers (and LLMs) love