← All courses

🍃 Spring Boot

The application around your data — starters, beans and constructor injection, externalized configuration and the precedence order that decides, and a whole series on reading auto-configuration so the framework stops being magic. Then the DataSource, tests that start in a second, Actuator and a jar somebody else can run.

No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.

Before you start: Java & Groovy for Data — Series 1, and Series 4. The language and the data access are assumed here, not taught. Series 4 in particular is where JPA, Hibernate and Spring Data stop being names, and this track builds the application around exactly that work rather than repeating it.

Short on time? The 16 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.


Series 1 · The Application

one artifact that starts, and knows how it is configured

  1. 01

    Starters, Auto-configuration and an Embedded Server — What Boot Actually Adds

    coreintermediatecoming soon
  2. 02

    Beans and Constructor Injection — What Spring Owns, and Why Not the new Keyword

    coreintermediatecoming soon
  3. 03

    Externalized Configuration — One Artifact, and the Precedence Order That Decides

    coreintermediatecoming soon
  4. 04

    Profiles — dev, test and prod Without Branching in the Code

    coreintermediatecoming soon
  5. 05

    Logging — Levels per Package, and Logging the Counts Rather Than the Story

    intermediatecoming soon
  6. 06

    Project — One Service, Three Environments, No Code Changes

    coreintermediate#projectcoming soon

Series 2 · Auto-configuration, Really

seeing what was configured for you, and taking it back

  1. 01

    Conditions — Why the Bean Appeared, and How Yours Replaces It

    coreadvancedcoming soon
  2. 02

    The Condition Evaluation Report — Reading Why, Instead of Guessing

    coreadvancedcoming soon
  3. 03

    Taking It Back — Overriding a Default, and Writing an Auto-configuration

    advancedcoming soon
  4. 04

    Startup Failures — Reading the Analyzer's Paragraph Instead of the Stack Trace

    coreadvancedcoming soon
  5. 05

    Project — Explain Every Bean in a Running Application, With Evidence

    coreadvanced#projectcoming soon

Series 3 · Web, Data and Tests

the layers a data application actually needs

  1. 01

    REST Controllers and JSON — and What a Million-Row Response Does to Heap

    coreadvancedcoming soon
  2. 02

    RestClient — Timeouts You Set, Because the Default Is Usually Forever

    advancedcoming soon
  3. 03

    The DataSource, the Pool and @Transactional — Including When the Annotation Does Nothing

    coreadvancedcoming soon
  4. 04

    Slices, Not the Whole Context — Tests That Start in a Second

    coreadvancedcoming soon
  5. 05

    Project — A Paged, Filtered API Over a Real Table, With Tests

    coreadvanced#projectcoming soon

Series 4 · Ready for Production

health, metrics, packaging, and handing it to Data Ops

  1. 01

    Actuator — Health, Loggers at Runtime, and What Not to Expose

    coreadvancedcoming soon
  2. 02

    Micrometer — Emitting the Two Numbers a Data Job Should Always Publish

    advancedcoming soon
  3. 03

    The Jar, the Layers and SIGTERM — Producing Something Somebody Else Can Run

    coreadvancedcoming soon
  4. 04

    Configuration in Production — the Same Jar Everywhere, Different Inputs

    advancedcoming soon
  5. 05

    Upgrading — the BOM, the Support Window, and Why Boot 3 Was a Rewrite of Imports

    advancedcoming soon
  6. 06

    Project — Take the API From Series 3 to a Running, Observable Container

    coreadvanced#projectcoming soon

Where this leads

  • Grails — starts from Series 1, and Series 2.

Not here, on purpose

  • Reading and writing rows — JPA, Hibernate, Spring Data, Spring Batch, scheduling — covered in Java & Groovy for Data, Series 4, which is the data half of these frameworks. In this course, Series 3 · 10 covers only the DataSource and the pool that sits under all of it
  • The Java language, streams, records and JDBC — covered in Java & Groovy for Data, Series 1 and Series 2
  • Running the server, the database and the machine — covered in Data Ops. This track hands you one runnable artifact and stops there
  • Convention-over-configuration on top of this — Grails — covered in Grails, which is built on Spring Boot and assumes this course
  • Reactive Spring — WebFlux, R2DBC and the reactive stack — not covered. It is a different programming model with its own reasons, and a data reader meets the servlet stack first and usually only. Named in Series 3 · 00 and left there