Skip to main content

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:

ModuleQuizTopic
2Quiz Module 2Getting started, Spring Initializr, basic annotations
3Quiz Module 3Layered architecture, CRUD, validation
4Quiz Module 4PostgreSQL, Jakarta Persistence, Hibernate, Lombok
5Quiz Chapter 1IoC and dependency injection
5Quiz Chapter 2Types of injection, @Qualifier
5Quiz Chapter 3Beans and Spring context
5Quiz Chapter 4Scopes and configuration
6Quiz Module 6Advanced JPA, conventions, relationships, @Query
7Quiz Module 7Datasources, transactions, Flyway
8Quiz Module 8Spring Security, JWT, OAuth2
9Quiz Module 9Unit tests, integration, MockMvc
10Quiz Module 10Exceptions, logging, Logback
11Quiz Module 11Actuator, Prometheus, Grafana
12Quiz Module 12Docker, CI/CD, deployment
13Quiz Module 13Microservices, Eureka, Gateway
14Quiz Module 14Redis Cache, RabbitMQ, WebSocket

Chapter 2 — Practical Work List​

All course practicals, organized by module:

Module 1 — Introduction​

PracticalTopicDuration
Practical 1.1Installation of Java JDK 17 (Windows, macOS, Linux)20-30 min
Practical 1.2Installation of Maven 3.9.x (Windows, macOS, Linux)30-45 min

Module 2 — Getting Started​

PracticalTopicDuration
Practical 2.1"Greeting" Application with Spring Boot1-2h
Practical 2.2H2 Database (in-memory and persistence)1-2h

Module 3 — Layered Architecture and Complete CRUD​

PracticalTopicDuration
Practical 3.1Complete CRUD Architecture (guided with code)4-6h
Practical 3.2Autonomous CRUD — same assignment, without code (challenge)2-3h

Module 4 — Databases in Production​

PracticalTopicDuration
Practical 4.1PostgreSQL Migration with Jakarta Persistence2-3h

Module 5 — Spring Core (IoC / DI)​

PracticalTopicDuration
Practical 5.1Advanced Dependency Injection1-2h
Practical 5.2Bean and Scope Management1-2h
Practical 5.3Configuration and Profiles1-2h

Module 6 — Advanced JPA​

PracticalTopicDuration
Practical 6.1Advanced Naming Conventions2h
Practical 6.2Employee-Department Relationships2-3h
Practical 6.3Airport-Flight-Passenger Exercise3-4h

Module 7 — Transactions and Migrations​

PracticalTopicDuration
Practical 7.1Datasource Configuration1-2h
Practical 7.2Transactions and Rollback2h
Practical 7.3Migration with Flyway1-2h

Module 8 — Spring Security​

PracticalTopicDuration
Practical 8.1Form Authentication1-2h
Practical 8.2JWT Authentication2-3h
Practical 8.3Roles and Permissions2h
Practical 8.4OAuth2 with Google2h

Module 9 — Testing​

PracticalTopicDuration
Practical 9.1Unit Tests for Service Layer2h
Practical 9.2Integration Tests for Repositories2h
Practical 9.3REST API Tests with MockMvc2h

Module 10 — Exceptions and Logging​

PracticalTopicDuration
Practical 10.1Centralized Error Handling2h
Practical 10.2Professional Logging System1-2h

Module 11 — Monitoring​

PracticalTopicDuration
Practical 11.1Actuator Configuration1-2h
Practical 11.2Monitoring with Prometheus and Grafana2-3h

Module 12 — Deployment​

PracticalTopicDuration
Practical 12.1Complete Dockerization2-3h
Practical 12.2CI/CD Pipeline and Deployment2-3h

Module 13 — Microservices​

PracticalTopicDuration
Practical 13.1Eureka Server and Clients2h
Practical 13.2Config Server1-2h
Practical 13.3API Gateway2h
Practical 13.4Feign and Resilience4j2-3h

Module 14 — Advanced Techniques​

PracticalTopicDuration
Practical 14.1Cache with Redis2h
Practical 14.2Messaging with RabbitMQ2h
Practical 14.3Real-time WebSocket2h
Practical 14.4Scheduled Tasks1-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​

  • "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