Build production Spring Boot APIs on modern Java
A hands-on backend path — core Spring & dependency injection, REST APIs, Spring Data JPA, security, testing, microservices and observability — ending with a capstone service you containerize and deploy yourself.
Prerequisites & tooling
What you should already know
- Core Java — classes, interfaces, collections, OOP basics
- Comfortable with the command line and Git
- No prior Spring experience required
- JDK 21 (LTS) and an IDE like IntelliJ installed
Stack you'll work with
The same tools teams use to ship real Spring Boot services in production.
Your 15-week learning path
Twelve modules, from your first @RestController to a tested, secured, observable service you deploy in a container.
Java Foundations & Environment Setup
Refresh modern Java and get your backend toolchain running.
- Records, sealed classes & pattern matching
- JDK 21, Maven/Gradle & project structure
- IDE setup & running your first Spring Boot app
Spring Core & Dependency Injection
Understand the container that powers every Spring application.
- IoC container, beans & the bean lifecycle
- Constructor injection & component scanning
- Auto-configuration & starters explained
Building REST APIs
Design and build clean, well-validated HTTP APIs.
- Spring MVC,
@RestController& DTOs - Bean Validation & request/response mapping
- Centralized error handling with
@ControllerAdvice
Data Persistence with Spring Data JPA
Model your domain and talk to a real relational database.
- Entities, repositories & JPQL queries
- Relationships, lazy loading & transactions
- Schema migrations with Flyway
Spring Security & Authentication
Lock down your API with modern, stateless authentication.
- The security filter chain & password encoding
- JWT-based authentication & OAuth2/OIDC login
- Method-level authorization
Testing Spring Boot Applications
Build a layered test suite you can trust before every deploy.
- Unit testing with JUnit 5 & Mockito
@SpringBootTest&MockMvcslice tests- Real-database integration tests with Testcontainers
Microservices & Messaging
Move from a single service to a small distributed system.
- Service-to-service calls with
RestClient/WebClient - Event-driven messaging with Kafka/RabbitMQ
- Resilience patterns with Resilience4j
Caching & Performance
Keep a growing service fast under real load.
- The Spring Cache abstraction & Redis
- Connection pooling & query performance
- Async processing with
@Async
Observability & Production Readiness
Understand what your service is doing once it's live.
- Spring Boot Actuator & health checks
- Metrics with Micrometer & structured logging
- Distributed tracing basics
Containerization & Deployment
Package and ship your service the way production teams do.
- Docker images with Cloud Native Buildpacks
- CI/CD pipelines for a Spring Boot service
- Deploying to Kubernetes — the basics
Reactive Programming with WebFlux
An introduction to Spring's non-blocking, reactive stack.
- Project Reactor:
Mono&Flux - Reactive data access & backpressure
- When to reach for WebFlux vs. Spring MVC
Capstone: Ship a Production Spring Boot Service
Apply every module in one project — built, tested, secured and deployed by you.
- Fully tested, secured, containerized service
- Code review & deployment walkthrough
- Portfolio-ready project you can show employers