← All articles

Guided learning series · 5 modules

Learn Spring Boot one mechanism at a time.

Each module adds one idea to the same order-notification example. Read the explanation, attempt the timed checkpoint, use hints only when needed and then compare your code with the solution.

Current track

From plain Java wiring to Boot auto-configuration

The modules are deliberately separate. Complete them in order because each checkpoint assumes only the ideas introduced before it.

  1. 01

    Why Spring exists

    Start with plain Java, tight coupling, dependency inversion, dependency injection and the composition root.

    Checkpoint: Refactor an OrderService so it can use email or SMS without creating either implementation.
    Open module →
  2. 02

    Build the first Spring Boot application

    Create a minimal non-web Maven application and unpack what @SpringBootApplication actually starts.

    Checkpoint: Write the POM, application class and application.properties from an empty project.
    Open module →
  3. 03

    Beans and constructor injection

    Let Spring create services, inject interfaces and resolve multiple implementations with @Primary and @Qualifier.

    Checkpoint: Make email the default sender while an OTP service explicitly requests SMS.
    Open module →
  4. 04

    Component scanning and explicit bean creation

    Understand the scan boundary, @Configuration, @Bean, managed versus ordinary objects and proxyBeanMethods.

    Checkpoint: Inject a fixed java.time.Clock into a timestamp service for deterministic output.
    Open module →
  5. 05

    Auto-configuration and back-off

    See how classpath, bean and property conditions decide which infrastructure Spring Boot contributes.

    Checkpoint: Evaluate three conditions and predict the exact beans left in the ApplicationContext.
    Open module →

How to use the series

Read briefly. Write from memory. Review precisely.

Start the suggested timer only when your editor is ready. Record whether you needed a hint, separate conceptual mistakes from mechanical ones, and finish by explaining why the solution works without looking at it.