Foundation

The Spring Ecosystem Map

What is Spring Boot and how do all the pieces fit together? This is the mental model page โ€” if you read nothing else, read this.

01
Foundation

What Is Spring Boot

Spring Framework is the container โ€” IoC, DI, AOP, MVC, Data, Security. It gives you everything, but you wire it yourself.
Spring Boot is the opinionated wrapper that auto-configures the framework. You describe what you need; Boot figures out the wiring.

  • Auto-configuration โ€” reads the classpath and wires beans for you
  • Starters โ€” curated dependency sets (BOMs) so you don't chase versions
  • Embedded server โ€” Tomcat/Jetty/Undertow baked into the JAR โ€” no WAR deployment

Before Boot: dozens of XML files, manual dependency version alignment, external Tomcat deployment. Boot solved all three. "Opinionated" means sensible defaults you override when needed โ€” not lock-in.

Layered Architecture
Your Application Code โ†“ Spring Boot โ€” auto-config + starters + embedded server โ†“ Spring Framework โ€” IoC ยท MVC ยท Data ยท Security ยท AOP โ†“ JVM
02
Landscape

Ecosystem Map

Spring Core

IoC container, dependency injection

Spring MVC

REST controllers, request handling

Spring Data JPA

Repository abstraction, Hibernate integration

Spring Security

Authentication, authorisation, filter chain

Spring Cloud

Distributed config, service discovery

Spring Batch

Large-scale batch processing jobs

Spring Kafka

Event streaming, async messaging

Spring WebFlux

Reactive, non-blocking web stack

Spring Integration

Enterprise integration patterns (EIP)

Typical REST API project: Spring Core + Spring MVC + Spring Data JPA + Spring Security. That covers 90% of backend Java projects. The outer ring is for specialised needs.
03
Vocabulary

Core Abstractions

Three concepts every Spring developer must have a reflex for:

ConceptOne-Line Definition
BeanAny object managed by the Spring container
ApplicationContextThe container itself โ€” creates, wires, and manages beans
Auto-configurationSpring Boot reads the classpath and wires beans automatically
04
Under the Hood

How Auto-Configuration Works

Spring Boot scans the classpath, checks @ConditionalOnClass and @ConditionalOnMissingBean, and registers beans only when conditions pass.

Auto-Config Decision Flow
Classpath detected (e.g. HikariCP jar) โ†“ @ConditionalOnClass passes โ†“ @ConditionalOnMissingBean โ€” DataSource declared? No Auto-configures DataSource Yes Skips โ€” uses yours

Just declare your own bean of the same type. Spring Boot sees @ConditionalOnMissingBean fail and backs off. That's the entire override mechanism.

Run with --debug flag or set debug=true in application.properties. Spring Boot prints a Conditions Evaluation Report โ€” every auto-config class and why it matched or didn't.

05
Dependencies

Starter Cheatsheet

A starter is a BOM โ€” a bill of materials โ€” not code itself. It pulls in a curated set of transitive dependencies so you don't chase version conflicts.

StarterWhat It Brings
spring-boot-starter-webSpring MVC, Jackson, embedded Tomcat
spring-boot-starter-data-jpaHibernate, Spring Data, transaction management
spring-boot-starter-securitySpring Security filter chain
spring-boot-starter-validationBean Validation (Hibernate Validator)
spring-boot-starter-actuatorHealth, metrics, info endpoints
spring-boot-starter-testJUnit 5, Mockito, MockMvc, Testcontainers support
spring-boot-starter-cache@Cacheable abstraction
spring-boot-starter-oauth2-resource-serverJWT validation