Session 1: Introduction to Spring
Overview of Spring framework and its core modules
Understanding Spring architecture and dependency injection (DI)
Spring configuration styles: XML, annotations, and Java-based (@Configuration)
Lab: Setting up a basic Spring application
Session 2: Introduction to Spring Boot
What is Spring Boot and why use it?
Spring Boot’s starter dependencies and auto-configuration
Creating a Spring Boot application with Spring Initializr
Working with Spring Boot properties and configuration
Lab: Building a Spring Boot application
Session 3: Spring Testing
Overview of JUnit 5 and Spring testing framework
Writing and executing Spring Boot unit tests
Using TestContext framework
Lab: Implementing and running Spring Boot tests
Session 4: Database Access with Spring and Spring Boot
Spring Boot database configuration
Working with JPA and Hibernate
Using Spring Data JPA for repository management
Querying databases with Spring Data repositories
Lab: Connecting a Spring Boot application to a database
Session 5: Spring Transaction Management
Understanding Spring’s declarative transaction management
Configuring transaction propagation and isolation levels
Managing transactions in Spring Boot applications
Lab: Implementing transactions in a Spring Boot project
Session 6: RESTful Services with Spring REST
REST fundamentals and HTTP principles
Building RESTful endpoints using Spring Web MVC
Mapping HTTP requests using @RequestMapping, @GetMapping, @PostMapping
Handling request and response payloads (@RequestBody, @ResponseBody)
Lab: Creating RESTful web services with Spring REST
Session 7: Working with JSON and XML in Spring REST
Configuring Jackson for JSON serialization and deserialization
Using Spring’s MessageConverters for JSON and XML processing
Lab: Implementing JSON-based REST APIs
Session 8: Java Clients for RESTful Services
Using RestTemplate to consume REST APIs
Handling HTTP responses and error management
Lab: Creating a Java-based REST client with RestTemplate
Session 9: Common RESTful Patterns
Implementing CRUD operations using REST
Using PUT for updates and DELETE for resource removal
Lab: Developing a complete RESTful API
Session 10: Spring Boot Configuration and Customization
Configuring Spring Boot application profiles
Managing external properties and environment-specific settings
Lab: Customizing Spring Boot behavior
Session 11: Spring Boot Security
Introduction to Spring Security
Implementing authentication and authorization in Spring Boot
Lab: Securing REST APIs with Spring Security
Session 12: Spring Boot Actuator and Monitoring
Introduction to Spring Boot Actuator
Monitoring application health and metrics
Lab: Enabling and using Spring Boot Actuator endpoints
By the end of this course, participants will be well-equipped to build enterprise-grade applications using Spring 6, Spring Boot 3, and Spring REST.