WA2511
Spring Boot 3 Programming Training
This Spring Boot training course provides a comprehensive introduction to the Spring Boot framework and its practical applications. Participants learn how to leverage Spring Boot's powerful features to streamline the development, configuration, and enhancement of Spring-based applications. From building RESTful web services to integrating databases and implementing robust security measures, this course teaches students how to rapidly create efficient and scalable Spring applications.
Course Details
Duration
2 days
Prerequisites
- Program Java applications - Course WA2494 meets this requirement
- Understand basic Spring applications - Course TP2385 meets this requirement
Target Audience
- Software Designers
- Developers
- Programmers
Skills Gained
- Understand the fundamentals of the Spring Framework and its core components
- Gain proficiency in Spring Boot's features for streamlined development
- Master the creation of RESTful web services using Spring MVC and related annotations
- Implement robust data access and persistence strategies with Spring Boot's JDBC and JPA support
- Secure Spring Boot applications using Spring Security
- Implement JSON Web Tokens (JWT) for secure authentication and authorization in Spring Boot applications
- Build, run, and test Spring Boot applications using tools like Spring Initializr and Postman
Course Outline
- Introduction to Spring Boot
- What is the Spring Framework?
- Spring Framework, main components
- What is Spring Boot?
- Spring Boot Features: Dependency Management
- Spring Boot Features: Auto-configuration
- Spring Boot Features: self-contained executable JARs
- Spring Boot Features: Embedded Web Applications
- Spring Boot Example: Parent POM reference
- Spring Boot Example: Starters
- Spring Boot Example: Maven/Gradle Plugin
- Spring Boot Example: Main Class
- Spring Boot Example: Controller Class
- Spring Boot Example: REST Controller example
- Sample Project Structure
- Building a Spring Boot project
- Running a Spring Boot JAR file
- Using a Spring Boot application
- Spring Initializr
- Spring Boot Database Integration
- What is a Data Access Object (DAO)?
- Spring Boot JDBC Support
- JDBC Driver
- Embedded Databases
- What will Spring Boot do?
- Spring DAO based on JDBC
- DataAccessException
- Spring Boot JPA
- Object to Relational Mapping Frameworks (ORM)
- Java ORM frameworks
- Getting started with JPA and Spring Boot
- JPA Annotations
- Spring DAO based on JPA
- What will Spring Boot do?
- What is Spring Data?
- Spring Data Repository Abstraction
- Spring Data Repository Example
- Spring Data JPA Method Naming Convention
- What will Spring Data JPA do?
- Spring Data JPA - Other Repository Interfaces
- Liquibase
- Database Schema Migration
- Database Schema Migration for CI/CD using Liquibase
- How Liquibase Works?
- Changelogs files
- Preconditions
- Multiple changelogs
- Running Liquibase
- Common Liquibase Commands
- Liquibase and Spring Boot
- Introduction to REST
- REpresentational State Transfer
- Principles of RESTful Services
- Understanding REST
- REST Example – Create with POST
- REST Example – Retrieve with GET
- REST Example – Update with PUT
- REST Example – Delete with DELETE
- REST Example – Create with PUT
- REST Example – JSON
- Spring MVC - @RestController
- HTTP Request Method Mapping
- Spring MVC Method Parameters
- @RequestBody
- ResponseEntity
- Java Clients - RestClient
- Testing with Postman
- JAX-RS Alternative
- Introduction to Spring Security
- What is Spring Security?
- Spring Security - Servlet-based web security
- Authentication
- Authorization
- Adding Spring Security to a Spring Boot Project
- Spring Security Default Configuration
- Spring Security Configuration Example
- Configuring Web Authorization
- Bypassing Spring Security
- Configuring Login / Logout
- Configuring HTTP Basic Authentication
- Authentication Manager
- Overriding UserDetailsService - In-Memory
- Overriding UserDetailsService - Database
- Other Authentication / Authorization Protocols
- Spring Security Integrations
- LDAP Authentication
- What is Security Assertion Markup Language (SAML)?
- SAML Flow
- Setting Up a SAML Identity Provider
- Spring Boot dependencies to use SAML
- SAML vs. OAuth2
- OAuth2 Overview
- OAuth2 Components
- OAuth2 – Authorization Code Grant / Flow
- OAuth2 – Other Grants / Flows
- OAuth2 – Other Grants / Flows (continued)
- OAuth2 – Tokens
- Spring Boot and OAuth2
- Spring Boot OAuth2 Client – Dependencies
- OAuth2 using Spring Boot – application.yml
- OAuth2 using Spring Boot – Main Class
- OAuth2 using Spring Boot – Single Page Application Client
- JSON Web Tokens
- JSON Web Token Architecture
- How JWT Works
- JWT Header
- JWT Payload
- JWT Example Payload
- JWT Example Signature
- How JWT Tokens are Used
- Adding JWT to HTTP Header
- How The Server Makes Use of JWT Tokens
- What are "Scopes"?
- JWT vs JWS vs JWE
- JWT with Spring Boot – Dependencies
- JWT with Spring Boot – Main Class
- Lab Exercises
- Lab 1. A Simple Spring Boot REST Application
- Lab 2. Use Spring’s JdbcClient with Spring Boot
- Lab 3. Use the Spring Data JPA under Spring Boot
- Lab 4. Create a RESTful API with Spring Boot
- Lab 5. Create a RESTful Client with Spring Boot
- Lab 6. Enable Basic Security
- Lab 7. Enable JWT-Based Security
Upcoming Course Dates