A progressive learning path from beginner to senior-level Spring Boot developer through hands-on projects.
Before starting, ensure you have:
- β Java 17+ fundamentals (lambdas, streams, Optional)
- β Basic understanding of HTTP/REST
- β Familiarity with SQL databases
- β Git version control basics
- β Maven or Gradle basics
Goal: Understand Spring Boot basics and build a working CRUD application
-
PetClinic - Official Spring reference app
-
RealWorld Example - Full-stack real-world app
- Spring Boot auto-configuration
- Dependency Injection (@Autowired, @Component)
- Spring MVC pattern
- JPA/Hibernate basics
- Thymeleaf templates
- Basic REST controllers
- Application properties
- Unit testing with JUnit 5
- Build PetClinic from source
- Add a new feature (e.g., pet adoption status)
- Write integration tests
- Deploy to Heroku/Railway
Goal: Build production-ready features with security, caching, and async processing
-
Mall - E-commerce platform
-
Spring Boot Admin - Monitoring dashboard
-
Sagan - Spring.io website source
- Spring Security (authentication & authorization)
- JWT tokens
- Redis caching strategies
- Elasticsearch integration
- RabbitMQ / JMS
- MyBatis (alternative to JPA)
- Swagger/OpenAPI documentation
- Actuator endpoints
- Prometheus + Grafana monitoring
- Async processing (@Async, @Scheduled)
- Add Redis caching to PetClinic
- Implement JWT authentication
- Create custom Actuator endpoint
- Set up monitoring dashboard
- Write load tests with Gatling
Goal: Master microservices architecture and distributed systems
-
PiggyMetrics - Microservice finance app
-
JHipster Sample - Enterprise scaffolding
-
Microbank - Spring Cloud microservices
-
eCommerce Microservices - Java Techie
- Service discovery (Eureka/Consul)
- API Gateway pattern
- Spring Cloud Config
- Circuit breaker (Resilience4j)
- Distributed tracing (Zipkin/Micrometer)
- Event-driven architecture
- Kafka / RabbitMQ messaging
- Docker & Docker Compose
- Kubernetes basics
- OAuth2 / OIDC
- Liquibase/Flyway migrations
- CI/CD pipelines
- Break monolith into 3 microservices
- Implement distributed tracing
- Add circuit breakers
- Containerize with Docker
- Set up GitHub Actions CI/CD
- Deploy to cloud (AWS/GCP)
Goal: Tackle complex business domains and production-scale systems
- Metasfresh - Open-source ERP
- Domain-Driven Design (DDD)
- Event sourcing
- CQRS pattern
- Hexagonal architecture
- Advanced PostgreSQL features
- Performance tuning & profiling
- Database optimization
- Message-driven architecture
- Reactive programming (WebFlux)
- GraphQL with Spring
- gRPC integration
- Design a DDD-based module
- Implement event sourcing
- Optimize N+1 queries
- Add GraphQL endpoint
- Write technical design docs
- Contribute PR to open-source project
- IoC Container
- Bean scopes
- @Configuration, @Bean
- @Component, @Service, @Repository, @Controller
- @Autowired, @Qualifier
- @Value, @ConfigurationProperties
- ApplicationEventPublisher
- SpEL (Spring Expression Language)
- @RestController, @Controller
- @RequestMapping, @GetMapping, @PostMapping
- @PathVariable, @RequestParam, @RequestBody
- @Valid, Bean Validation
- HandlerInterceptor
- ResponseStatusException
- Content negotiation
- CORS configuration
- Exception handling (@ControllerAdvice)
- Spring Data JPA repositories
- @Entity, @Table, relationships
- @Transactional
- N+1 problem solutions
- Specification/QueryDSL
- Database migrations (Liquibase/Flyway)
- Connection pooling (HikariCP)
- Multi-tenant databases
- SecurityFilterChain
- PasswordEncoder
- Method security (@PreAuthorize)
- CSRF protection
- CORS vs CORS policy
- OAuth2 Resource Server
- OAuth2 Client
- JWT implementation
- Refresh tokens
- RBAC (Role-Based Access Control)
- @SpringBootTest
- @WebMvcTest
- @DataJpaTest
- MockMvc
- @MockBean
- TestContainers
- WireMock
- Integration test patterns
- Performance testing
- Actuator endpoints
- Health indicators
- Metrics (Micrometer)
- Structured logging
- Log aggregation (ELK)
- Docker multi-stage builds
- Kubernetes manifests
- Helm charts
- Blue-green deployment
- Canary releases
- β Complete PetClinic tutorial
- β Build personal CRUD project
- β Deploy to cloud
- β Write 80%+ test coverage
- β Add security to project
- β Implement caching
- β Set up monitoring
- β Write API documentation
- β Build 3+ microservices
- β Implement service discovery
- β Add distributed tracing
- β Containerize deployment
- β Contribute to open-source
- β Write technical blog posts
- β Speak at meetups
- β Mentor juniors
- "Spring Boot in Action" - Craig Walls
- "Spring Microservices in Action" - John Carnell
- "Domain-Driven Design" - Eric Evans
- Spring Developer
- Amigoscode
- Java Techie
- Daily Code Buffer
- Read the project README and architecture docs
- Clone and run locally
- Trace through the codebase (controllers β services β repos)
- Build a feature from scratch
- Write tests for your feature
- Deploy to cloud
- Contribute a PR (even documentation fixes count!)
Keep a learning journal. For each project:
- What patterns did you learn?
- What bugs did you fix?
- What features did you add?
- What would you do differently?
Remember: Seniority isn't about knowing everythingβit's about knowing how to learn, debug, and ship production code. Build, break, fix, repeat. π