Spring Boot
From Basic to Advanced
Get the most out of your Spring Boot application
Want to get the most out of Spring Boot?
- 1Spring 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? - 2Production 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? - 3Spring 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.
More Testimonials
Viva Credit, Romania
Thank you @vlad_mihalcea for having you for 3 full days in our office. We learned a lot about high-performance Java persistence!
— Cristian Olaru ☕ (@colaru) October 7, 2017
Voxxed Days, Bucharest
Thanks @vlad_mihalcea for a very interesting #vdbuh2019 workshop and sharing your in-depth knowledge on this topic! Can't wait to review/update my Hibernate queries 😎👍 pic.twitter.com/yVliYelq3O
— Stephan 🇺🇦 (@Stephan007) March 20, 2019
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.

