Spring Boot Training
Modern Java Application Development
Course Code: 420-XXX-XX
Session: Winter 2025
Instructor: To be determined
Institution: inskillflow academy
Course Overview
This comprehensive training will enable you to master Spring Boot, the most popular Java framework for modern application development. From introduction to advanced concepts, you will learn to create robust and scalable professional applications.
Learning Objectives
By the end of this course, you will be able to:
- Understand the fundamentals of Spring Boot and its ecosystem
- Develop web applications with Spring MVC and REST APIs
- Manage data persistence with Spring Data JPA
- Secure your applications with Spring Security
- Deploy and monitor applications in production
- Create microservices with Spring Cloud
- Apply best practices in modern Java development
Teaching Approach
70% Practical - 30% Theory
Each module combines:
- Lectures on fundamental concepts
- Hands-on practical labs
- Real development projects
- Exercises and quizzes
Chapter 1 — Quiz List
Test your knowledge after each module:
| Module | Quiz | Topic |
|---|---|---|
| 2 | Quiz Module 2 | Getting started, Spring Initializr, basic annotations |
| 3 | Quiz Module 3 | Layered architecture, CRUD, validation |
| 4 | Quiz Module 4 | PostgreSQL, Jakarta Persistence, Hibernate, Lombok |
| 5 | Quiz Chapter 1 | IoC and dependency injection |
| 5 | Quiz Chapter 2 | Types of injection, @Qualifier |
| 5 | Quiz Chapter 3 | Beans and Spring context |
| 5 | Quiz Chapter 4 | Scopes and configuration |
| 6 | Quiz Module 6 | Advanced JPA, conventions, relationships, @Query |
| 7 | Quiz Module 7 | Datasources, transactions, Flyway |
| 8 | Quiz Module 8 | Spring Security, JWT, OAuth2 |
| 9 | Quiz Module 9 | Unit tests, integration, MockMvc |
| 10 | Quiz Module 10 | Exceptions, logging, Logback |
| 11 | Quiz Module 11 | Actuator, Prometheus, Grafana |
| 12 | Quiz Module 12 | Docker, CI/CD, deployment |
| 13 | Quiz Module 13 | Microservices, Eureka, Gateway |
| 14 | Quiz Module 14 | Redis Cache, RabbitMQ, WebSocket |
Chapter 2 — Practical Work List
All course practicals, organized by module:
Module 1 — Introduction
| Practical | Topic | Duration |
|---|---|---|
| Practical 1.1 | Installation of Java JDK 17 (Windows, macOS, Linux) | 20-30 min |
| Practical 1.2 | Installation of Maven 3.9.x (Windows, macOS, Linux) | 30-45 min |
Module 2 — Getting Started
| Practical | Topic | Duration |
|---|---|---|
| Practical 2.1 | "Greeting" Application with Spring Boot | 1-2h |
| Practical 2.2 | H2 Database (in-memory and persistence) | 1-2h |
Module 3 — Layered Architecture and Complete CRUD
| Practical | Topic | Duration |
|---|---|---|
| Practical 3.1 | Complete CRUD Architecture (guided with code) | 4-6h |
| Practical 3.2 | Autonomous CRUD — same assignment, without code (challenge) | 2-3h |
Module 4 — Databases in Production
| Practical | Topic | Duration |
|---|---|---|
| Practical 4.1 | PostgreSQL Migration with Jakarta Persistence | 2-3h |
Module 5 — Spring Core (IoC / DI)
| Practical | Topic | Duration |
|---|---|---|
| Practical 5.1 | Advanced Dependency Injection | 1-2h |
| Practical 5.2 | Bean and Scope Management | 1-2h |
| Practical 5.3 | Configuration and Profiles | 1-2h |
Module 6 — Advanced JPA
| Practical | Topic | Duration |
|---|---|---|
| Practical 6.1 | Advanced Naming Conventions | 2h |
| Practical 6.2 | Employee-Department Relationships | 2-3h |
| Practical 6.3 | Airport-Flight-Passenger Exercise | 3-4h |
Module 7 — Transactions and Migrations
| Practical | Topic | Duration |
|---|---|---|
| Practical 7.1 | Datasource Configuration | 1-2h |
| Practical 7.2 | Transactions and Rollback | 2h |
| Practical 7.3 | Migration with Flyway | 1-2h |
Module 8 — Spring Security
| Practical | Topic | Duration |
|---|---|---|
| Practical 8.1 | Form Authentication | 1-2h |
| Practical 8.2 | JWT Authentication | 2-3h |
| Practical 8.3 | Roles and Permissions | 2h |
| Practical 8.4 | OAuth2 with Google | 2h |
Module 9 — Testing
| Practical | Topic | Duration |
|---|---|---|
| Practical 9.1 | Unit Tests for Service Layer | 2h |
| Practical 9.2 | Integration Tests for Repositories | 2h |
| Practical 9.3 | REST API Tests with MockMvc | 2h |
Module 10 — Exceptions and Logging
| Practical | Topic | Duration |
|---|---|---|
| Practical 10.1 | Centralized Error Handling | 2h |
| Practical 10.2 | Professional Logging System | 1-2h |
Module 11 — Monitoring
| Practical | Topic | Duration |
|---|---|---|
| Practical 11.1 | Actuator Configuration | 1-2h |
| Practical 11.2 | Monitoring with Prometheus and Grafana | 2-3h |
Module 12 — Deployment
| Practical | Topic | Duration |
|---|---|---|
| Practical 12.1 | Complete Dockerization | 2-3h |
| Practical 12.2 | CI/CD Pipeline and Deployment | 2-3h |
Module 13 — Microservices
| Practical | Topic | Duration |
|---|---|---|
| Practical 13.1 | Eureka Server and Clients | 2h |
| Practical 13.2 | Config Server | 1-2h |
| Practical 13.3 | API Gateway | 2h |
| Practical 13.4 | Feign and Resilience4j | 2-3h |
Module 14 — Advanced Techniques
| Practical | Topic | Duration |
|---|---|---|
| Practical 14.1 | Cache with Redis | 2h |
| Practical 14.2 | Messaging with RabbitMQ | 2h |
| Practical 14.3 | Real-time WebSocket | 2h |
| Practical 14.4 | Scheduled Tasks | 1-2h |
Course Plan - 19 Modules
MODULE 1 - Introduction to Spring Boot
Duration: 1 session
Content:
- History and evolution of Spring Boot
- MVC Model (Model-View-Controller)
- Apache Tomcat and embedded servers
- Jackson and JSON handling
- Auto-configuration and conventions
Objectives:
- Understand the Spring ecosystem
- Identify the advantages of Spring Boot
- Discover fundamental concepts
MODULE 2 - Getting Started with Spring Boot [COMPLETED]
Duration: 2-3 sessions
Content:
- Spring Initializr
- Structure of a Spring Boot project
- Configuration files (application.properties/yml)
- Basic annotations (@RestController, @Service, @Repository)
- Introduction to JPA Repositories (4 basic methods: save, findById, findAll, deleteById)
- Simple naming conventions (findBy, And, Or)
Practical Work:
- Practical 1: Greeting Application with Visual Studio Code
- Practical 2: H2 Database (In-Memory and Persistence)
Pedagogical Note: Simplified module to focus on fundamentals. Advanced practicals have been moved to Modules 3 and 4 with appropriate theory.
MODULE 3 - Layered Architecture and Complete CRUD [COMPLETED]
Duration: 2-3 sessions
Theoretical Content:
- The Service Layer in detail (role, responsibilities, separation of concerns)
- Data validation with Bean Validation (JSR 380)
- Annotations: @NotNull, @NotEmpty, @Size, @Min, @Max, @Email, @Pattern, @Valid
- Professional HTTP error handling
- ResponseEntity and HTTP status codes (200, 201, 204, 400, 404, 500)
- @ExceptionHandler and @ControllerAdvice
- Professional 3-layer architecture
Practical Work:
- Practical 1: Complete CRUD Architecture (Product API with validation and error handling)
Prerequisites: Module 2 completed
Note: This module contains the former Practical 3 from Module 2, now with ALL necessary theory.
MODULE 4 - Databases in Production [COMPLETED]
Duration: 2-3 sessions
Theoretical Content:
- PostgreSQL: Installation, configuration, administration tools
- Jakarta vs Javax Persistence (history, migration, compatibility)
- Hibernate and DDL strategies (none, validate, update, create, create-drop)
- Hibernate dialects and configuration
- Lombok: @Data, @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Builder
- Database migration
Practical Work:
- Practical 1: PostgreSQL and Production Migration (with Lombok, Jakarta, multi-DB)
Prerequisites: Module 2 and 3 completed
Note: This module contains the former Practical 4 from Module 2, now with ALL necessary theory.
MODULE 5 - Spring Core - Advanced IoC and DI [Upcoming]
Duration: 2 sessions
Content:
- In-depth Inversion of Control (IoC)
- Advanced Dependency Injection (DI)
- Beans and Spring context
- Bean lifecycle
- Scopes (@Singleton, @Prototype, @Request, @Session)
- Java vs XML Configuration
Labs:
- Lab 5.1: Advanced Dependency Injection
- Lab 5.2: Bean and Scope Management
- Lab 5.3: Custom Configuration
MODULE 6 - Advanced Spring Data JPA [COMPLETED]
Duration: 3 sessions
Content:
- Complete naming conventions (15+ keywords: Between, LessThan, GreaterThan, Like, In, IsNull, etc.)
- Joins and complex relationships (@OneToMany, @ManyToOne, @ManyToMany)
- JPQL and custom queries with @Query
- Native SQL queries
- Advanced pagination and sorting
- Performance optimization (lazy loading, fetch strategies)
Labs:
- Lab 6.1: Advanced Naming Conventions
- Lab 6.2: Employee-Department Joins
- Lab 6.3: Airport-Flight-Passenger Exercise (20 questions)
- Lab 6.4: Complete Evaluation with Solution
Note: This module contains the advanced JPA content that was initially in Module 2 (original Chapter 5).
MODULE 7 - Databases and Transactions [Upcoming]
Duration: 2 sessions
Content:
- Datasource configuration
- Transaction management (@Transactional)
- Schema migration (Flyway, Liquibase)
- Connecting to different DBs (MySQL, PostgreSQL, H2)
Labs:
- Lab 7.1: Multi-datasource Configuration
- Lab 7.2: Transactions and Rollback
- Lab 7.3: Migration with Flyway
MODULE 8 - Spring Security
Duration: 2 sessions
Content:
- Authentication and authorization
- Security configuration
- JWT (JSON Web Tokens)
- OAuth2 and SSO
- CSRF protection
Labs:
- Lab 8.1: Basic Authentication
- Lab 8.2: JWT Authentication
- Lab 8.3: Roles and Permissions
MODULE 9 - Testing with Spring Boot
Duration: 2 sessions
Content:
- Unit testing with JUnit 5
- Integration testing
- MockMvc and WebTestClient
- Mocking with Mockito
- Code coverage
Labs:
- Lab 9.1: Unit Tests
- Lab 9.2: Integration Tests
- Lab 9.3: REST API Tests
MODULE 10 - Exception Handling and Logging
Duration: 1 session
Content:
- @ControllerAdvice and global management
- Custom error responses
- Logging with SLF4J and Logback
- Log levels and configuration
Labs:
- Lab 10.1: Global Exception Handler
- Lab 10.2: Logging Configuration
- Lab 10.3: Structured Logs
MODULE 11 - Spring Boot Actuator and Monitoring
Duration: 1 session
Content:
- Actuator endpoints
- Metrics and health checks
- Monitoring with Prometheus and Grafana
- Distributed tracing
Labs:
- Lab 11.1: Actuator Configuration
- Lab 11.2: Custom Metrics
- Lab 11.3: Monitoring Dashboard
MODULE 12 - Deployment and Production
Duration: 2 sessions
Content:
- Packaging (JAR vs WAR)
- Environment profiles
- Server deployment
- Containerization with Docker
- CI/CD with GitHub Actions
Labs:
- Lab 12.1: Build and Packaging
- Lab 12.2: Dockerfile and Docker Compose
- Lab 12.3: CI/CD Pipeline
MODULE 13 - Spring Cloud and Microservices
Duration: 2 sessions
Content:
- Microservices architecture
- Service discovery (Eureka)
- Centralized configuration (Config Server)
- API Gateway
- Inter-service communication
Labs:
- Lab 13.1: Eureka Server and Clients
- Lab 13.2: Config Server
- Lab 13.3: API Gateway with Spring Cloud Gateway
MODULE 14 - Advanced Techniques
Duration: 2 sessions
Content:
- Reactive programming (WebFlux)
- Caching with Spring Cache (Redis)
- Asynchronous messaging (RabbitMQ, Kafka)
- Scheduled tasks
- WebSockets
Labs:
- Lab 14.1: Redis Cache
- Lab 14.2: Messaging with RabbitMQ
- Lab 14.3: Real-time WebSocket
MODULE 15 - Final Project
Duration: 3 sessions
Content:
- Complete project from A to Z
- E-commerce application or management system
- Integration of all concepts
- Presentation and code review
Deliverables:
- Fully functional complete application
- Technical documentation
- Complete tests
- Docker deployment
MODULE 16 - E-Contact Backend Project
Duration: 3 sessions
Content:
- Complete guided project — Contact form REST API
- JWT authentication and security
- PostgreSQL database
- Frontend integration
- Deployment with GitHub Codespaces
Chapters:
- Chapter 1: Getting Started with Codespaces
- Chapter 2: Troubleshooting
- Chapter 3: Frontend Integration
- Chapter 4: Complementary Course
- Chapter 5: Advanced Security
MODULE 17 - Spring Boot Annotations (Reference)
Content:
- Exhaustive reference of all Spring Boot annotations
- Core Annotations (IoC, DI, Configuration)
- Web and REST Annotations
- Data/JPA Annotations
- Security, Test, and Advanced Annotations
- A-Z Dictionary (120+ annotations)
Chapters:
- Chapter 1: Core Annotations
- Chapter 2: Web/REST Annotations
- Chapter 3: Data/JPA Annotations
- Chapter 4: Security, Test, and Advanced
- Chapter 5: A-Z Dictionary
MODULE 18 - Interview Questions
Content:
- Complete preparation for Java/Spring Boot technical interviews
- Questions categorized by theme and difficulty level
- Coding exercises, algorithms, refactoring
- Common pitfalls and fundamental concepts
Chapters:
- Chapter 1: JPA & Database (N+1, Lazy/Eager, @Transactional)
- Chapter 2: Refactoring Exercises (Guard clauses, Strategy, SRP)
- Chapter 3: Algorithms & Structures (HashMap, Stack, Binary Search)
- Chapter 4: REST Design & Design Patterns (Builder, Singleton, Observer)
- Chapter 5: Debugging & Code Review
- Chapter 6: Fundamental Java Pitfalls (== vs .equals(), hashCode, final, static)
- Chapter 7: Java Collections (List, Map, Set, Stream API)
- Chapter 8: What is...? (DTO, MVC, CRUD, IoC, ORM, Docker, CI/CD, JWT)
MODULE 19 - GitHub Repositories (References)
Content:
- Links to all training repositories
- Documentation site repository (Docusaurus)
- E-contact-backend project repository
- Security Annexes
- Additional resources
Tools and Technologies
Development Environment
- IDE: IntelliJ IDEA / Eclipse / VS Code
- JDK: Java 17 or 21 (LTS)
- Build Tool: Maven or Gradle
- Git: Version control
Spring Technologies
- Spring Boot 3.x
- Spring MVC
- Spring Data JPA
- Spring Security
- Spring Cloud
- Spring Boot Actuator
Databases
- H2 (development)
- MySQL / PostgreSQL (production)
- Redis (cache)
Additional Tools
- Docker and Docker Compose
- Postman / Insomnia
- Swagger / OpenAPI
- Lombok
Developed Skills
Technical Skills
Backend Development:
- Design and development of REST APIs
- Persistence management with JPA/Hibernate
- Web application security
- Automated testing
- Deployment and DevOps
Architecture:
- Design patterns (MVC, Repository, Service Layer)
- Microservices architecture
- Separation of concerns
- RESTful API design
Best Practices:
- Clean Code
- SOLID principles
- Convention over Configuration
- Test-Driven Development (TDD)
Professional Skills
- Agile methodology
- Technical documentation
- Teamwork
- Problem-solving
- Technology watch
Evaluations
Practical Work (50%)
- Practical 1: Simple CRUD web application (10%)
- Practical 2: REST API with JPA and security (15%)
- Practical 3: Complete application with tests (25%)
Labs (20%)
- Weekly labs (15%)
- Participation and engagement (5%)
Final Project (30%)
- Complete application (20%)
- Presentation and documentation (10%)
Total: 100%
Prerequisites
Prior Knowledge
- Object-oriented programming (OOP)
- Java basics
- Web concepts (HTTP, HTML, CSS)
- Relational databases (SQL)
Required Equipment
- Computer with at least 8 GB RAM (16 GB recommended)
- 50 GB of free disk space
- Stable Internet connection
Software to Install
- JDK 17 or 21
- IntelliJ IDEA Community (or other IDE)
- MySQL or PostgreSQL
- Docker Desktop
- Postman
Course Resources
Official Documentation
Recommended Books
- "Spring Boot in Action" - Craig Walls
- "Pro Spring Boot 2" - Felipe Gutierrez
- "Spring Microservices in Action" - John Carnell
Community
Course Progression
[COMPLETED] MODULE 1 - Introduction to Spring Boot
[COMPLETED] MODULE 2 - Getting Started with Spring Boot
[COMPLETED] MODULE 3 - Layered Architecture and CRUD
[COMPLETED] MODULE 4 - Databases in Production
[COMPLETED] MODULE 5 - Spring Core - Advanced IoC and DI
[COMPLETED] MODULE 6 - Advanced Spring Data JPA
[COMPLETED] MODULE 7 - Databases and Transactions
[COMPLETED] MODULE 8 - Spring Security
[COMPLETED] MODULE 9 - Testing with Spring Boot
[COMPLETED] MODULE 10 - Exception Handling and Logging
[COMPLETED] MODULE 11 - Spring Boot Actuator and Monitoring
[COMPLETED] MODULE 12 - Deployment and Production
[COMPLETED] MODULE 13 - Spring Cloud and Microservices
[COMPLETED] MODULE 14 - Advanced Techniques
[COMPLETED] MODULE 15 - Final Project
[COMPLETED] MODULE 16 - E-Contact Backend Project
[COMPLETED] MODULE 17 - Spring Boot Annotations (Reference)
[COMPLETED] MODULE 18 - Interview Questions
[COMPLETED] MODULE 19 - GitHub Repositories (References)
Start Now!
Explore the modules in the sidebar and start your Spring Boot learning journey!
Happy learning and developing!
Last updated: March 2025