Chapter 1 – Spring in 2026: What Changed and Why It Matters
- What’s new in Spring Framework 7 and Spring Boot 4
- The Jakarta EE baseline and its implications
- Reactive, virtual threads, native images: choosing the right tool
- Where Spring fits among Micronaut, Quarkus, Helidon
Chapter 2 – Spring Boot 4 Under the Hood (Recap for Intermediates)
- Auto-configuration internals (conditions, ordering)
- Configuration properties (
@ConfigurationProperties, records, validation) - Profiles, environment abstraction, and config precedence
- Actuator as a first-class tool, not an afterthought
Chapter 3 – Dependency Injection and Bean Lifecycles (Beyond the Basics)
- Refresh on IoC/DI, but focusing on issues
- Bean scopes in real apps (singleton, request, session, prototype)
- Lifecycle callbacks, SmartLifecycle, and application startup sequencing
- Detecting misconfigurations early (fail-fast, custom health checks)
Chapter 4 – Advanced REST API Design with Spring MVC
- API design principles for teams (resource modeling, consistency)
- Versioning strategies in practice (URI, headers, content negotiation)
- Idempotency, safe retries, and handling partial failures
- Structuring controllers and DTOs in a large codebase
Chapter 5 – Validation, Error Handling, and Problem Details
- Bean Validation in depth (groups, composed constraints)
- Global exception handling patterns (
@ControllerAdvice, RFC 7807 / Problem Details) - Returning consistent error responses across the whole platform
- Multi-module/shared error-handling libraries for teams
Chapter 6 – File Handling, Streaming, and Large Payloads
- Efficient file uploads/downloads (streaming, range requests)
- Serving large JSON/NDJSON/CSV responses without blowing memory
- Practical backpressure strategies in traditional MVC apps
- Integrating with CDNs, proxies, and gateways
Chapter 7 – Spring Data JPA in Real Systems
- Entity design for performance and clarity
- Dealing with N+1 queries and lazy loading
- Projections (interfaces, DTOs) and query hints
- When to give up on JPA for specific queries
Chapter 8 – Transaction Management in Depth
@Transactionalsemantics (propagation, isolation) with real examples- Long-running workflows and sagas vs ACID transactions
- Handling concurrency conflicts (optimistic vs pessimistic locking)
- Designing transactional boundaries in layered/hexagonal architectures
Chapter 9 – Alternatives and Complements: JDBC, jOOQ, and NoSQL
- Effective use of JdbcTemplate and batch operations
- Integrating jOOQ for complex queries without losing Spring benefits
- Spring Data for NoSQL (MongoDB, Redis) – patterns that differ from JPA
- Polyglot persistence: when one DB is not enough
Chapter 10 – Modern Spring Security Configuration
- The new SecurityFilterChain DSL (no more WebSecurityConfigurerAdapter)
- Stateless vs stateful security in practice
- Method security with
@PreAuthorizeand custom permission evaluators - Common pitfalls: CSRF, CORS, session fixation
Chapter 11 – JWT, OAuth2, and Identity in Distributed Systems
- Implementing JWT-based auth for APIs (resource servers)
- Integrating with identity providers (Keycloak, Okta, Auth0, corporate IdPs)
- Single sign-on (SSO) for internal applications
- Patterns for propagating identity across microservices
Chapter 12 – Securing Microservices: Patterns and Best Practices
- Challenges in microservice security
- API Gateway security (authentication, rate limiting, WAF)
- Service-to-service authentication and authorization
- Data security (encryption, masking, access control)
- Centralized secret management (Vault, Kubernetes Secrets)
- Security auditing and logging
Chapter 13 – Unit, Integration, and End-to-End Testing with Spring Boot Test
- The Spring Boot Test ecosystem:
@SpringBootTest,@WebMvcTest,@DataJpaTest, etc. - Mocking strategies:
@MockBean,@SpyBean, and Mockito - Testcontainers for reliable integration testing
- End-to-end testing with Selenium/Playwright and Spring Boot
- Best practices for a robust testing strategy
Chapter 14 – Code Quality, Static Analysis, and Refactoring
- Establishing coding standards and code review processes
- Static analysis tools: Checkstyle, SpotBugs, PMD, SonarQube
- Refactoring techniques for improving code design
- Measuring and tracking technical debt
Chapter 15 – Observability: Logging, Metrics, Tracing, and Alerting
- Structured logging with Logback/Log4j2 and MDC
- Metrics with Micrometer and Prometheus/Grafana
- Distributed tracing with OpenTelemetry and Zipkin/Jaeger
- Alerting strategies and incident response
Chapter 16 – From Monolith to Microservices: An Evolutionary Path
- When to choose a monolith vs. microservices
- Evolutionary architecture: the Strangler Fig Pattern
- Identifying service boundaries (domain-driven design)
- Event-driven architecture and its role in decoupling
Chapter 17 – Building Microservices with Spring Boot: Core Patterns
- Service discovery (Eureka, Consul, Kubernetes Service Discovery)
- Distributed configuration (Spring Cloud Config, Consul KV)
- Circuit breakers and resilience patterns (Resilience4j)
- API Gateway (Spring Cloud Gateway)
- Centralized logging and tracing (ELK, OpenTelemetry)
- Event-driven communication with Spring Cloud Stream
Chapter 18 – Serverless and Function-as-a-Service (FaaS) with Spring Cloud Function
- Benefits of serverless architecture for Spring Boot applications
- Spring Cloud Function: a unified programming model
- Deploying Spring Boot functions to AWS Lambda
- Serverless patterns for data processing and event-driven workflows
- Trade-offs and when to avoid serverless
Chapter 19 – Reactive Programming with Spring WebFlux and Reactor
- Introduction to reactive programming and its benefits
- Spring WebFlux: building reactive web applications
- Project Reactor: Flux and Mono
- Backpressure management in reactive systems
- Integrating reactive data access (Spring Data R2DBC)
Chapter 20 – High-Performance Spring: Caching, Concurrency, and Asynchronous Processing
- Caching strategies with Spring Cache Abstraction
- Concurrency control and thread management
- Asynchronous processing with
@AsyncandCompletableFuture - Database connection pooling and optimization
Chapter 21 – Performance Testing, Load Testing, and Profiling
- Defining performance goals and metrics
- Performance testing with JMeter and Gatling
- Profiling tools: JProfiler, VisualVM, Java Flight Recorder
- Continuous performance monitoring in production
Chapter 22 – Deployment Strategies: JAR, Docker, and Kubernetes
- Traditional JAR deployment and its limitations
- Docker containerization for consistent environments
- Kubernetes orchestration for scalable and resilient deployments
- Cloud-native deployment considerations (managed services, serverless containers)
Chapter 23 – GraalVM Native Images for Ultra-Fast Startup and Low Memory Footprint
- Introduction to GraalVM Native Image and its advantages
- Spring Boot 4 and GraalVM: first-class support for native images
- Optimizing native images for size and performance
- Deploying native images to cloud environments (AWS Lambda, Kubernetes)
Chapter 24 – Production Concerns: Monitoring, Logging, Tracing, and Security in the Cloud
- Cloud-native monitoring and alerting with Spring Boot Actuator
- Centralized logging and log aggregation in cloud environments
- Distributed tracing in cloud-native architectures
- Cloud security best practices for Spring Boot applications
- Disaster recovery and business continuity in the cloud
Chapter 25 – Migrating from Spring Boot 3 to Spring Boot 4
- Understanding the major changes in Spring Boot 4 and Spring Framework 7
- Migration steps and considerations
- Leveraging new features and improvements
- Best practices for a smooth migration
Chapter 26 – Advanced Design Patterns and Architectural Styles
- Domain-Driven Design (DDD) for complex business domains
- Event Sourcing and CQRS for scalable and maintainable systems
- Hexagonal Architecture (Ports and Adapters) for adaptable application cores
- Building modular monoliths with Spring Boot
Chapter 27 – Long-Term Maintenance, Upgrades, and Community Engagement
- Continuous delivery and automated upgrades
- Managing technical debt and refactoring strategies
- Long-term support (LTS) versions and upgrade paths
- Community involvement and leveraging the Spring ecosystem
- Conclusion