Vishal's Blog
Header

18 - Spring Boot Architecture Overview

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

  1. main() method runs
  2. SpringApplication created
  3. ApplicationContext initialized
  4. Auto-configuration applied
  5. Beans created and wired
  6. Embedded server starts
  7. 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.