Spring Boot – From Basic to Advanced

Spring Boot

From Basic to Advanced


Get the most out of your Spring Boot application

Want to get the most out of Spring Boot?

  • 1
    Spring Boot Fundamentals

    Adding a starter and an annotation is fairly easy. But do you know how auto-configuration, the IoC container, and “convention over configuration” actually work behind the scenes, and what to do when the convention no longer fits your application?
  • 2
    Production Readiness

    A REST API that runs on your laptop is only the beginning. Do you know how to make it production-grade: secured, observable, stateless, horizontally scalable, and aligned with the 12-Factor App methodology?
  • 3
    Spring Boot 4 & Spring Framework 7

    The new platform generation is here: virtual threads by default, modularized starters, Spring Security 7, Jackson 3, and Hibernate 7. Do you know what silently breaks when you bump the version, and how to migrate safely?

Curriculum

The Spring Boot – From Basic to Advanced training is aimed to level up your team's Spring skills, covering the Spring Framework and Spring Boot fundamentals, REST APIs, data access with Spring Data JPA, security, reactive programming, Spring Cloud, Spring Modulith, the 12-Factor App methodology, and the migration to Spring Boot 4 and Spring Framework 7.

Every code snippet on every slide comes verbatim from a compiled, integration-tested project that you get access to, so nothing you see in this training is hypothetical: you can run all the demos yourself, during and after the training.

Day 1 – Foundations and Core Spring

Spring and Spring Boot Ecosystem Overview

Duration: 45m

  • What is the Spring Framework, what problem it solves, and why Spring Boot exists
  • Spring Boot vs. Spring Framework – auto-configuration philosophy, starters, embedded server model
  • Tour of the Spring portfolio (Web, Data, Security, Cloud, Batch, Integration)
  • Java vs. Kotlin in a Spring context

Configuration and Profiles

Duration: 40m

  • application.properties vs. YAML, property binding, @Value vs. @ConfigurationProperties
  • Profiles: activation strategies and multi-environment setup
  • Code lab: dev and prod profiles with externalized database configuration

Spring Data JPA: Database Access

Duration: 1h 20m

  • Entities, relationships, and why the SEQUENCE identifier strategy matters for batching
  • Repositories, derived query methods, @Query, projections, pagination and sorting
  • Code lab: wire JPA persistence into the REST API, backed by a real PostgreSQL database
  • Common pitfalls: N+1 queries, LazyInitializationException, EAGER vs. LAZY, open-in-view

Dependency Injection and Auto-Configuration

Duration: 1h

  • The IoC container: @Component, @Service, @Repository, @Bean, constructor injection, bean lifecycle
  • Code lab: build a Spring Boot app from scratch and inspect the application context
  • Auto-configuration deep dive: @ConditionalOnClass, @ConditionalOnMissingBean, the auto-configuration report

Spring Web and REST APIs

Duration: 1h 10m

  • @RestController, request mappings, content negotiation, ResponseEntity, HTTP status codes
  • Bean Validation and global error handling with @ControllerAdvice and ProblemDetail (RFC 7807)
  • Code lab: a complete CRUD REST API with validation and error handling

Spring Security: Locking Down the API

Duration: 45m

  • How the security filter chain works: authentication and authorization step by step
  • SecurityFilterChain configuration, role-based access, method security with @PreAuthorize
  • Passwordless sign-in with Passkeys (WebAuthn) in Spring Security 7
  • Code lab: protect the API endpoints by role and test the setup

Day 2 – Advanced Patterns and Production Readiness

Spring WebFlux: Reactive Programming

Duration: 1h

  • The non-blocking I/O model, Mono and Flux, reactive operators, WebClient
  • When to use WebFlux vs. servlet with virtual threads (when to choose one or the other)
  • Code demo: the same endpoint, servlet-based and reactive, side by side

Spring Modulith and Modular Design

Duration: 45m

  • Module boundaries, @ApplicationModule, event-driven communication between modules
  • Architecture validation tests and generated documentation
  • Modular monolith vs. microservices – when to split and how to migrate

Actuator, Health Checks, and the 12-Factor App

Duration: 45m

  • Actuator endpoints, custom health indicators, securing Actuator in production
  • Introduction to the 12-Factor App methodology and how to build resilient software architectures

12-Factor: Logging and Observability

Duration: 1h

  • Structured JSON logging, MDC, correlation IDs, logging to stdout
  • Metrics with Micrometer: custom metrics, dimensional tagging, Prometheus export
  • Distributed tracing with OpenTelemetry, viewing traces end to end

Spring Cloud: Microservices Patterns

Duration: 1h 10m

  • Config Server – centralized externalized configuration
  • Service Discovery – registration, lookup, client-side load balancing
  • Spring Cloud Gateway – routing, filters, rate limiting
  • Circuit Breaker with Resilience4j – fallbacks and bulkheads

Spring Integration

Duration: 30m

  • Enterprise Integration Patterns and Spring Integration
  • Channels, endpoints, message flows, and the integration DSL
  • Practical example: file polling → transformation → database write

12-Factor: Dependency and Configuration Management

Duration: 30m

  • Factor 2 – BOM management, reproducible builds, centralized version control
  • Factor 3 – externalized configuration, environment variables, Config Server, secrets handling

12-Factor: Stateless Services and Caching

Duration: 45m

  • Why statelessness matters for horizontal scaling; Spring Session with Redis
  • Caching strategies: @Cacheable, Caffeine vs. Redis, invalidation patterns
  • Database state management: HikariCP tuning and connection pool monitoring

Day 3 – What's New in Spring Boot and How to Migrate

Why This Release Is Different

Duration: 30m

  • The scope of the upgrade: Spring Framework 7, Spring Security 7, Spring Data 2025.1, Hibernate 7, Jackson 3, Jakarta EE 11
  • How this compares to the Spring Boot 2 → 3 migration

HTTP Service Clients and API Versioning

Duration: 30m

  • @HttpExchange typed clients replacing boilerplate WebClient and RestTemplate code
  • First-class API versioning: strategies and configuration

Platform and Ecosystem Upgrades

Duration: 45m

  • Jakarta EE 11 alignment and JSpecify null-safety annotations
  • The Jackson 3 transition and its serialization gotchas
    Hibernate 7: SQL generation and fetch behavior changes
  • GraalVM Native Image and Startup Improvements

Breaking Changes and Risk Mitigation

Duration: 45m

  • Modularized starters and silent startup failures
  • Spring Security 7 defaults and the silent 403 problem
  • Removed APIs, testing changes, configuration property renames

Virtual Threads as the Default Execution Model

Duration: 45m

  • Platform threads vs. virtual threads, and what changed from opt-in to default
  • The synchronized pinning problem and how to fix it
  • Connection pool implications: HikariCP sizing under virtual threads
  • Does reactive still makes sense?

Observability: The OpenTelemetry Starter

Duration: 45m

  • One dependency that auto-configures metrics and traces over OTLP
  • The Observation API: @Observed and ObservationRegistry
  • Live demo: traces and metrics flowing to a local collector

GraalVM Native Image and Startup Improvements

Duration: 30m

  • AOT processing improvements in Spring Boot 4
  • Project Leyden and “static images” vs. GraalVM native images
  • Live demo: native build and startup time comparison

Hands-On Migration Workshop

Duration: 1h 25m

  • Migrate a realistic Spring Boot 3 application to 4.0, step by step
  • Properties migrator → version bump → fix Security → fix Jackson → green test suite
  • OpenRewrite: what it automates and what it doesn't
  • The migration checklist that works, and the version support timeline

What People Are Saying...

Elod Balázs

Operations Manager - NTT DATA

As Java developers, we all use JPA and inherently Hibernate at one point in time in our projects. Sometimes it happens that some of us just use and abuse this technology.

The presentation has the right topics, order and proper information to get the beginners and the “lost” intermediate user on the right track. You are a senior, and you wonder if it’s the right thing for you? Well, you can get under the hood and understand the underlying mechanisms and implementations used throughout the framework. Moreover, you will learn about advanced topics like caching, locking mechanisms and concurrency control.

I strongly believe that this is a great all-around training when it comes to ORM concepts.

Mihai Costin

Senior Software Engineer - Moqups

I've been using Hibernate for over 8 years in various projects, and I was thinking "what's more to learn about it?". Well, it turns out I was wrong. I've learned a lot after attending Vlad's training.

It was a very educative and enlightening course, backed up by a lot of code samples, answered questions, do's and don'ts in the Hibernate world. There's a huge difference between using Hibernate and using it right.

Fit to your needs

There is no limit of students that can enroll in this training. If you have multiple teams that need to attend it, the cheaper it gets per person.

The full training takes half a day, so it's going to be very easy to fit into your schedule, no matter how busy it is.

All source code is in a GitHub® repository which you set up during the training and use it whenever you want.




Contact me

Let me teach you how to run your data access layer at high speeds!


If you want to book a training session,

you should email me at vlad@vladmihalcea.com

and discuss it in more detail.

← Back

Thank you for your response. ✨

More Testimonials


Viva Credit, Romania

Voxxed Days, Bucharest

Copyright notice

Oracle®, Java®, MySQL® are registered trademarks of Oracle and/or its affiliates.

Microsoft® SQL Server® – Microsoft and Microsoft SQL Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

PostgreSQL is a trademark or registered trademark of PostgreSQL Global Development Group.

Hibernate® is a trademark of Red Hat, Inc.

Spring® is a trademark of Broadcom Inc. and/or its subsidiaries.

jOOQ™ is a trademark by Data Geekery™ GmbH.

GitHub is a trademark of GitHub, Inc.