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.
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.
Ecosystem Map
IoC container, dependency injection
REST controllers, request handling
Repository abstraction, Hibernate integration
Authentication, authorisation, filter chain
Distributed config, service discovery
Large-scale batch processing jobs
Event streaming, async messaging
Reactive, non-blocking web stack
Enterprise integration patterns (EIP)
Core Abstractions
Three concepts every Spring developer must have a reflex for:
| Concept | One-Line Definition |
|---|---|
| Bean | Any object managed by the Spring container |
| ApplicationContext | The container itself โ creates, wires, and manages beans |
| Auto-configuration | Spring Boot reads the classpath and wires beans automatically |
How Auto-Configuration Works
Spring Boot scans the classpath, checks @ConditionalOnClass and
@ConditionalOnMissingBean, and registers beans only when conditions pass.
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.
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.
| Starter | What It Brings |
|---|---|
spring-boot-starter-web | Spring MVC, Jackson, embedded Tomcat |
spring-boot-starter-data-jpa | Hibernate, Spring Data, transaction management |
spring-boot-starter-security | Spring Security filter chain |
spring-boot-starter-validation | Bean Validation (Hibernate Validator) |
spring-boot-starter-actuator | Health, metrics, info endpoints |
spring-boot-starter-test | JUnit 5, Mockito, MockMvc, Testcontainers support |
spring-boot-starter-cache | @Cacheable abstraction |
spring-boot-starter-oauth2-resource-server | JWT validation |
What To Read Next
The fundamentals that underpin everything โ the concepts people half-remember.
Build a clean REST API โ annotations, patterns, and the two things people get wrong.
The data layer โ where most production bugs live. N+1, lazy loading, propagation.
How Spring Security works โ the filter chain โ plus JWT and OAuth2 patterns.
What separates a working local app from a production-ready service.
Concise, production-flavoured answers grouped by domain.