18 - Spring Boot Architecture Overview
- 11 - Creating Beans: @Component, @Service, @Repository, @Configuration & @Bean
- 12 - Understanding @PostConstruct and @PreDestroy
- 13 - Component Scanning Explained (@ComponentScan)
- 14 - Spring Autowiring: Modes & Best Practices
- 15 - DispatcherServlet & Request Flow in Spring MVC
- 16 - Spring IoC Container Deep Dive
- 17 - Maven & Gradle Basics for Spring Boot
- 18 - Spring Boot Architecture OverviewCurrent
- 19 - Key Spring Boot Annotations Explained
- 20 - Auto-Configuration in Spring Boot: How It Really Works
- 21 - Spring Boot Starters: Simplifying Dependency Management
- 22 - Spring Boot Configuration: application.properties & application.yml
Spring Boot is not just a collection of annotations — it is a well-designed architecture built on top of the Spring Framework to simplify application development.
Understanding Spring Boot’s architecture helps you:
- Debug startup issues
- Customize auto-configuration
- Design scalable applications
- Use Spring Boot confidently in production
1. High-Level Spring Boot Architecture
At a high level, Spring Boot consists of:
- Spring Core & IoC Container
- Auto-Configuration Engine
- Starter Dependencies
- Embedded Web Server
- Externalized Configuration
- Production-ready features (Actuator)
All these components work together to minimize boilerplate and maximize productivity.
2. Spring Boot Built on Spring Framework
Spring Boot does not replace Spring.
It uses:
- Spring Core (IoC, DI, AOP)
- Spring MVC
- Spring Data
- Spring Security
- Spring Context
Spring Boot simply adds smart defaults and automation on top.
3. Auto-Configuration: The Heart of Spring Boot
Auto-configuration automatically configures beans based on:
- Classpath dependencies
- Application properties
- Environment
- Conditional annotations
Example:
@ConditionalOnClass(DataSource.class)
@ConditionalOnMissingBean(DataSource.class)
public class DataSourceAutoConfiguration { }
Spring Boot configures components only if needed.
4. Starter Dependencies
Starters bundle commonly used dependencies.
Example:
spring-boot-starter-web
Includes:
- Spring MVC
- Embedded Tomcat
- Jackson
- Validation
Starters ensure compatible versions and reduce dependency conflicts.
5. Embedded Web Server
Spring Boot embeds servers like:
- Tomcat (default)
- Jetty
- Netty
Benefits:
- No external server setup
- Easy deployment
- Executable JARs
Application runs using:
java -jar app.jar
6. Externalized Configuration
Spring Boot supports configuration from:
- application.properties / application.yml
- Environment variables
- Command-line arguments
- Profiles
This enables environment-specific behavior without code changes.
7. Application Startup Flow
- main() method runs
- SpringApplication created
- ApplicationContext initialized
- Auto-configuration applied
- Beans created and wired
- Embedded server starts
- Application ready
Spring Boot logs reflect this entire process.
8. Production-Ready Features
Spring Boot provides built-in production tools:
- Actuator endpoints
- Health checks
- Metrics
- Info endpoints
These features are critical for monitoring and operations.
9. Customizing Spring Boot Architecture
You can customize by:
- Excluding auto-configurations
- Overriding beans
- Custom starters
- Profiles
Example:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
10. Summary
- Spring Boot architecture builds on Spring Framework
- Auto-configuration is the core innovation
- Starters simplify dependency management
- Embedded servers simplify deployment
- Architecture supports scalable, production-ready apps
What's Next?
Next post:
19 - Key Spring Boot Annotations Explained
We’ll explore the most important annotations that power Spring Boot applications.
