Spring Boot provides a rich set of web starters that cover synchronous and reactive HTTP servers, template engines, API styles, and input validation. Each starter wires up its technology automatically when it lands on the classpath, so you can go from a blank project to a running web application by adding a single dependency.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.
Choosing a web stack
- Servlet (MVC)
- Reactive (WebFlux)
Use the Spring MVC stack when you need synchronous, thread-per-request processing, a large ecosystem of existing libraries, or you are migrating an existing servlet-based application.Start with
spring-boot-starter-webmvc (or the legacy alias spring-boot-starter-web).You cannot mix
spring-boot-starter-webmvc and spring-boot-starter-webflux in the same application and have both fully active. If both are on the classpath, Spring MVC takes precedence. Use the reactive stack deliberately, not accidentally.spring-boot-starter-webmvc
The primary starter for building REST APIs and server-rendered web applications with Spring MVC and an embedded Tomcat server. Includes:spring-boot-starter · spring-boot-starter-jackson · spring-boot-starter-tomcat · spring-boot-webmvc · spring-boot-http-converter
spring-boot-starter-web alias.
spring-boot-starter-web
Legacy alias forspring-boot-starter-webmvc. The build description reads: “Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container (deprecated in favor of spring-boot-starter-webmvc)”.
Prefer
spring-boot-starter-webmvc for new projects. The spring-boot-starter-web name is retained for backward compatibility.spring-boot-starter-webflux
Reactive web applications built on Spring WebFlux and backed by Reactor Netty as the embedded server. Includes:spring-boot-starter · spring-boot-starter-jackson · spring-boot-starter-reactor-netty · spring-boot-reactor · spring-boot-webflux
spring-boot-starter-websocket
Server-side WebSocket support via the Spring MVC WebSocket module (STOMP over WebSocket). Includes:spring-boot-starter · spring-boot-starter-webmvc · spring-boot-websocket
spring-boot-starter-graphql
GraphQL API support via Spring for GraphQL, which integrates with both the MVC and WebFlux stacks. Includes:spring-boot-starter · spring-boot-starter-jackson · spring-boot-reactor · spring-boot-graphql
spring-boot-starter-hateoas
Hypermedia-driven REST APIs using Spring HATEOAS (HAL, link relations). Includes:spring-boot-starter · spring-boot-starter-webmvc · spring-boot-hateoas
_links.self, _links.next) so clients can discover available actions without hard-coding URLs.
spring-boot-starter-jersey
JAX-RS web services using the Jersey reference implementation instead of Spring MVC. Includes:spring-boot-starter · spring-boot-starter-tomcat · spring-boot-starter-validation · spring-boot-jackson2 · spring-boot-jersey · jersey-bean-validation
@Path, @GET, @POST) or integrating with other JAX-RS tooling. For greenfield projects, Spring MVC or WebFlux is typically preferred.
Template engine starters
spring-boot-starter-thymeleaf
spring-boot-starter-thymeleaf
Server-side HTML rendering with Thymeleaf, including Spring Security integration and natural templates (valid HTML files that work in a browser without a server).Includes: Templates are resolved from
spring-boot-starter · spring-boot-thymeleafsrc/main/resources/templates/ by default.src/main/resources/templates/index.html
spring-boot-starter-freemarker
spring-boot-starter-freemarker
Server-side HTML and text rendering with Apache FreeMarker. Suitable when you need a well-established, mature template language with extensive documentation.Includes: Templates are resolved from
spring-boot-starter · spring-boot-freemarkersrc/main/resources/templates/ with the .ftlh extension (HTML-escaped).spring-boot-starter-mustache
spring-boot-starter-mustache
Logic-less server-side templates using Mustache. Because Mustache deliberately has no logic in the template, all view logic lives in the controller — a strong separation of concerns.Includes: Templates are resolved from
spring-boot-starter · spring-boot-mustachesrc/main/resources/templates/ with the .mustache extension.spring-boot-starter-validation
Bean Validation (Jakarta Validation API) backed by Hibernate Validator, used to validate method parameters, request bodies, and configuration properties. Includes:spring-boot-starter · spring-boot-validation (which brings hibernate-validator)
@Valid, @NotNull, @Size, @Pattern, or custom ConstraintValidator implementations on REST request bodies, service method parameters, or Spring configuration classes.