Spring Framework 6: Beginner To Guru (Update)

Posted By: ELK1nG

Spring Framework 6: Beginner To Guru
Last updated 2/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 15.34 GB | Duration: 32h 45m

Learn All Things Spring! Spring Framework 6, Spring Boot 3, Spring MVC, Spring Data JPA, Spring Security, Spring WebFlux

What you'll learn

Learn to Build a Spring Boot Web Application

Perform Dependency Injection with Spring Framework 6

Learn Best Practices for Building RESTful APIs

Use Project Lombok to Speed Up Your Development

Create RESTful Web Services using SpringMVC

Test Spring MVC using Spring MockMVC with Mockito

Use Spring Data JPA with Spring MVC

Validate Data using Bean Validation

How to Access a MySQL Database with Spring Boot

Use Flyway for Database Migrations

Create RESTful APIs Using Spring Data REST

How to use Spring RestTemplate

Configure HTTP Basic Auth with Spring Security

How to Use and Configure Spring Authorization Server

Create a Spring OAuth2 Resource Server

Learn Functional Reactive Programming

Learn Spring Data Mongo with Webflux-fn

How to Configure Spring Cloud Gateway

Requirements

Basic Java knowledge is required

HTTP and HTML Knowledge is very helpful

Knowledge of SQL and databases is helpful

Description

This course is All Things Spring!Do you wish to master Spring Framework 6 and Spring Boot 3? Then this is the course for you. This course is for developers with no previous Spring Framework or Spring Boot experience. This course has been developed by a back end developer, for back end developers!Inside this course, you will learn about:Build a Spring Boot Web AppUse Spring for Dependency InjectionCreate RESTful Web Services with Spring MVCCreate RESTful Web Services with Spring WebfluxCreate RESTful Web Services with Spring Webflux.fnLearn Best Practices using Project Lombok with SpringCreate MapStruct Mappers as Spring ComponentsSpring MockMVC with Mockito and JUnit 5Spring Data JPASpring Data MongoDBSpring Data R2DBC (Reactive)Spring RestTemplateSpring WebClientSpring WebTestClientSpring Security HTTP Basic Authentication Spring Security OAuth2 Authentication w/ JWTSpring Authorization ServerSpring WebMVC OAuth2 Resource Server Spring WebFlux OAuth2 Resource ServerSpring Cloud GatewaySpring Boot Maven PluginSpring Boot Gradle PluginUse Java Bean Validation with SpringSpring Boot Auto-Configuration with MySQLUse Spring Boot and Flyway for Database Migrations Hibernate Database Relationship Mapping with Spring Data JPACourse Extra - IntelliJ IDEA UltimateStudents enrolling in the course can receive a free 4 month trial license to IntelliJ IDEA Ultimate! Get hands on experience using the Java IDE preferred by Spring Framework professionals! Course Extra - Access to a Private Slack CommunityYou're not just enrolling in a course –> You are joining a community learning Spring.With your enrollment to the course, you can access an exclusive Slack community. Get help from the instructor and other Spring Framework Gurus from around the world - in real time! This community is only available to students enrolled in this course. This is a very active Slack community with over 18,700 Spring Framework Gurus!This is the largest online community of people learning Spring in the world.With your enrollment, you can join this community of awesome gurus!Closed Captioning / SubtitlesClosed captioning in English is available for all course videos!PDF DownloadsAll keynote presentations are available for you to download as PDFs.Lifetime AccessWhen you purchase this course, you will receive lifetime access! You can login anytime from anywhere to access the course content.No Risk - Money Back Guarantee You can buy this course with no risk. If you are unhappy with the course, for any reason, you can get a complete refund. The course has a 30 day Money Back Guarantee.

Overview

Section 1: Introduction

Lecture 1 Course Introduction

Lecture 2 Instructor Introduction

Lecture 3 Getting the Most out of this Course

Lecture 4 Setting Up Your Development Environment

Lecture 5 Is Your IDE Free Like a Puppy?

Lecture 6 Free 120 Day IntelliJ IDEA Trial!

Lecture 7 Getting Help with the Spring Framework

Lecture 8 Course Slack Room - Chat Live with Me and Other Gurus!

Lecture 9 Using GitHub

Section 2: Building a Spring Boot Web App

Lecture 10 Introduction

Lecture 11 Introduction to Spring

Lecture 12 Application Overview

Lecture 13 Spring Initilizer

Lecture 14 Open Project in IntelliJ

Lecture 15 Using JPA Entities

Lecture 16 JPA Relationships

Lecture 17 Code Examples in GitHub

Lecture 18 Equality in Hibernate

Lecture 19 Spring Data Repositories

Lecture 20 Initializing Data with Spring

Lecture 21 Publisher Relationships

Lecture 22 Introduction to H2 Database Console

Lecture 23 Introduction to Spring MVC

Lecture 24 Create Service Layer

Lecture 25 Configuring Spring Controllers

Lecture 26 Thymeleaf Templates

Lecture 27 Project Review

Section 3: Dependency Injection with Spring

Lecture 28 Introduction

Lecture 29 SOLID Principles of OOP

Lecture 30 The Spring Context

Lecture 31 Spring Test Context

Lecture 32 Basics of Dependency Injection

Lecture 33 Dependencies Without Injection

Lecture 34 Dependency Injection without Spring

Lecture 35 Dependency Injection using Spring Framework

Lecture 36 Primary Beans

Lecture 37 Using Qualifiers

Lecture 38 Spring Profiles

Lecture 39 Default Profile

Lecture 40 Spring Bean Life Cycle

Lecture 41 Spring Bean Life Cycle Demo

Section 4: Introduction to Restful Web Services

Lecture 42 Introduction

Lecture 43 HTTP Protocol

Lecture 44 HTTP Request Methods

Lecture 45 Postman Demonstration

Lecture 46 Beginners Guide to REST

Lecture 47 Richardson Maturity Model

Lecture 48 Spring Framework and RESTFul Services

Section 5: Project Lombok

Lecture 49 Introduction

Lecture 50 Create New Project

Lecture 51 Project Lombok Features

Lecture 52 Project Lombok POJOs

Lecture 53 Project Lombok Builders

Lecture 54 Project Lombok Constructors

Lecture 55 Project Lombok Logging

Lecture 56 De-Lombock

Section 6: Spring MVC Rest Services

Lecture 57 Introduction

Lecture 58 Introducing SFG Beer Works

Lecture 59 HTTP GET with Spring MVC List Operation

Lecture 60 HTTP Client

Lecture 61 Using Path Parameters - Get By Id

Lecture 62 Spring Boot Development Tools

Lecture 63 HTTP POST with Spring MVC

Lecture 64 Set Header on HTTP Response

Lecture 65 HTTP PUT with Spring MVC

Lecture 66 HTTP DELETE with Spring MVC

Lecture 67 HTTP PATCH with Spring MVC

Section 7: Spring MockMVC Test with Mockito

Lecture 68 Introduction

Lecture 69 Introduction to Testing with MockMVC

Lecture 70 MockMVC Configuration

Lecture 71 Return Data With Mockito

Lecture 72 Using JSON Matchers

Lecture 73 MockMVC Test List Beers

Lecture 74 Create JSON Using Jackson

Lecture 75 MockMVC Test Create Beer

Lecture 76 MockMVC Test Update Beer

Lecture 77 MockMVC Test Delete Beer

Lecture 78 MockMVC Test Patch Beer

Lecture 79 DRY - Don't Repeat Yourself

Lecture 80 DRY - Refactoring

Lecture 81 URI Builder

Section 8: Exception Handling with Spring MVC

Lecture 82 Introduction

Lecture 83 Exception Handling Overview

Lecture 84 Throw Custom Exception with Mockito

Lecture 85 Using Exception Handler

Lecture 86 Controller Advice

Lecture 87 Using ResponseStatus Annotation

Lecture 88 Using Java Optional

Section 9: Spring Data JPA with Spring MVC

Lecture 89 Introduction

Lecture 90 Data Transfer Objects

Lecture 91 Refactoring to DTOs

Lecture 92 Spring Data JPA Dependencies

Lecture 93 Creating JPA Entities

Lecture 94 Hibernate UUID Id Generation

Lecture 95 Spring Data JPA Repositories

Lecture 96 Spring Boot JPA Test Splice

Lecture 97 MapStruct Dependencies and Configuration

Lecture 98 MapStruct Mappers

Lecture 99 JPA Services

Lecture 100 JPA Get Operations

Lecture 101 Controller Integration Test

Lecture 102 Testing for expected Exceptions

Lecture 103 JPA Save New Beer Operation

Lecture 104 JPA Update Beer by Id Operation

Lecture 105 JPA Update Beer Not Found

Lecture 106 JPA Delete Beer by Id

Lecture 107 JPA Delete by Id Not Found

Section 10: Data Validation

Lecture 108 Introduction

Lecture 109 Data Validation Overview

Lecture 110 Java Bean Validation Maven Dependencies

Lecture 111 Controller Binding Validation

Lecture 112 Custom Validation Handler

Lecture 113 Custom Error Body

Lecture 114 JPA Validation

Lecture 115 Database Constraint Validation

Lecture 116 Controller Testing with JPA

Lecture 117 JPA Validation Error Handler

Lecture 118 JPA Validation Error Message

Section 11: MySQL with Spring Boot

Lecture 119 Introduction

Lecture 120 Overview of MySQL

Lecture 121 Installing MySQL

Lecture 122 Create MySQL Schema and User Accounts

Lecture 123 Adding MySQL Dependencies

Lecture 124 Spring Boot MySQL Profile

Lecture 125 Console Logging of SQL Statements

Lecture 126 JPA Updates for MySQL

Lecture 127 Hikari Datasource Pool

Lecture 128 Schema Script Generation

Lecture 129 Spring Boot Database Initialization

Section 12: Flyway Migrations

Lecture 130 Introduction

Lecture 131 Overview of Flyway

Lecture 132 Flyway Dependencies

Lecture 133 Flyway Migration Script Configuration

Lecture 134 Add Database Column

Lecture 135 Flyway Advanced Spring Boot Configuration

Lecture 136 Fixing Integration Tests using H2

Section 13: CSV File Uploads

Lecture 137 Introduction

Lecture 138 Beer CSV Data

Lecture 139 Beer CSV POJO

Lecture 140 Mapping with OpenCSV

Lecture 141 CSV Parse Service

Lecture 142 Save CSV Data to Database

Lecture 143 Hibernate Create and Update Timestamp

Lecture 144 Fix Integration Tests

Section 14: Query Parameters with Spring MVC

Lecture 145 Introduction

Lecture 146 Overview of Query Parameters

Lecture 147 List Beers Spring MVC Test

Lecture 148 Capture Query Parameters with Spring MVC

Lecture 149 Update Service to Accept Query Parameter

Lecture 150 Refactor Service with Conditional Logic

Lecture 151 Find By Name with Spring Data JPA

Lecture 152 Complete Implementation

Lecture 153 Complete Search Functionality

Section 15: Paging and Sorting

Lecture 154 Introduction

Lecture 155 What is Paging and Sorting?

Lecture 156 Paging and Sorting with Spring

Lecture 157 Add Paging Parameters

Lecture 158 Create Page Request Object

Lecture 159 Refactor Spring Data JPA Repositories

Lecture 160 Add Sort Parameter

Section 16: Database Relationship Mappings

Lecture 161 Introduction

Lecture 162 Overview of Database Relationships

Lecture 163 Review of Database Changes

Lecture 164 One to Many Bidirectional

Lecture 165 Create Beer Order Repository

Lecture 166 Persisting Beer Order Relationships

Lecture 167 Association Helper Methods

Lecture 168 Many to Many

Lecture 169 Many to Many Persistence

Lecture 170 One to One Bi-Directional

Lecture 171 Cascade on Persist

Lecture 172 Hibernate Cascade Types

Section 17: Database Transactions & Locking

Lecture 173 Introduction

Lecture 174 Overview of Database Transactions

Lecture 175 Database Locking Demo

Lecture 176 Spring Data JPA Transactions

Lecture 177 Optimistic Locking Demo

Section 18: Introduction to Spring Data REST

Lecture 178 Introduction

Lecture 179 Project Code Review

Lecture 180 Add Spring Data REST Dependency

Lecture 181 List All With Spring Data REST

Lecture 182 Set Base Path

Lecture 183 Customize URL Path

Lecture 184 Version Property - ETag Header

Lecture 185 API Profile

Lecture 186 Create with Spring Data REST

Lecture 187 Update Data with Spring Data REST

Lecture 188 Delete Data with Spring Data REST

Lecture 189 Use Repository Methods

Section 19: Spring RestTemplate

Lecture 190 Introduction

Lecture 191 Project Code Review

Lecture 192 Create Client Service

Lecture 193 Get List as JSON String

Lecture 194 Get List as Java Map

Lecture 195 Get List as Jackson Object

Lecture 196 Spring Pageable with Jackson

Lecture 197 RestTemplateBuilder Configuration

Lecture 198 Externalize Root URL

Lecture 199 Uri Components Builder

Lecture 200 Query Parameters

Lecture 201 URL Parameters

Lecture 202 HTTP Post with RestTemplate

Lecture 203 Get Response Header

Lecture 204 HTTP Put with RestTemplate

Lecture 205 HTTP Delete with RestTemplate

Section 20: Testing Spring RestTemplate

Lecture 206 Introduction

Lecture 207 Create Mock Test Class

Lecture 208 Using Mockito

Lecture 209 Mock Test Create Beer

Lecture 210 Refactor Setup Method

Lecture 211 Mock Test Update Beer

Lecture 212 Mock Test Delete Beer

Lecture 213 Mock Test Not Found

Lecture 214 Mock Test Query Param

Section 21: Spring Security Basic Auth

Lecture 215 Introduction

Lecture 216 Adding Spring Security Dependencies

Lecture 217 Calling Rest API with Postman and HTTP Basic

Lecture 218 Customizing User Name and Password

Lecture 219 Testing Spring Security with JUnit 5

Lecture 220 Spring Security Config - Disable CSRF

Lecture 221 Spring Security with Web Application Context

Lecture 222 HTTP Basic with RestTemplate

Lecture 223 Refactor of RestTemplate Builder Config

Lecture 224 HTTP Basic with RestTemplate Mock Context

Section 22: Spring Authorization Server

Lecture 225 Introduction

Lecture 226 Overview of OAuth 2 and JWT

Lecture 227 Introduction to Spring Authorization Server

Lecture 228 Create New Project

Lecture 229 Add Authorization Server Filter Chain

Lecture 230 Add Default Security Filter Chain

Lecture 231 Create User Details Service

Lecture 232 Add Registered Client Repository

Lecture 233 Create JWK Source

Lecture 234 Create JwtDecoder

Lecture 235 Set Authorization Server Settings

Lecture 236 Get Authorization Token Using Postman

Section 23: Spring MVC OAuth2 Resource Server

Lecture 237 Introduction

Lecture 238 Maven Dependencies

Lecture 239 Spring Security Configuration

Lecture 240 Testing with Postman

Lecture 241 Spring MockMVC Testing with JWT

Lecture 242 Refactor JWT Tests

Section 24: Spring RestTemplate with OAuth 2

Lecture 243 Introduction

Lecture 244 Maven Dependencies and Spring Configuration

Lecture 245 Spring Authorized Client Manager

Lecture 246 Http Request Interceptor

Lecture 247 Add Interceptor to RestTemplate Builder

Lecture 248 Mock OAuth2 Manager

Section 25: Introduction to Reactive Programing

Lecture 249 Introduction

Lecture 250 Reactive Manifesto

Lecture 251 What is Reactive Programming?

Lecture 252 Reactive Streams API

Lecture 253 Create Spring Boot Project

Lecture 254 Implement Repository

Lecture 255 Mono Operations

Lecture 256 Flux Operations

Lecture 257 Filter Flux Objects

Lecture 258 Error Handling

Lecture 259 Step Verifier

Section 26: Spring Data R2DBC

Lecture 260 Introduction

Lecture 261 Overview of Spring Data R2DBC

Lecture 262 Create Spring Boot Project

Lecture 263 Initializing Database

Lecture 264 Create Database Entity

Lecture 265 Create Spring Data R2DBC Repository

Lecture 266 Test Save New Entity

Lecture 267 Add Create and Update Date with Auditing

Lecture 268 Initializing Database

Section 27: Spring WebFlux Rest Services

Lecture 269 Introduction

Lecture 270 Create WebFlux Controller

Lecture 271 List Flux from Database

Lecture 272 Using Path Variables

Lecture 273 Create New Beer Entity

Lecture 274 Testing Create with Postman

Lecture 275 Update Beer Entity

Lecture 276 Test Update with Postman

Lecture 277 Delete Beer Entity

Lecture 278 Add Validation

Section 28: Spring WebFlux WebTestClient

Lecture 279 Introduction

Lecture 280 Test List Beers

Lecture 281 Test Get By ID

Lecture 282 Test Create Beer Entity

Lecture 283 Test Update Beer Entity

Lecture 284 Test Delete Beer Entity

Lecture 285 Test Method Order

Section 29: Exception Handling with Spring WebFlux

Lecture 286 Introduction

Lecture 287 Test Validation Failure On Create

Lecture 288 Test Validation Failure On Update

Lecture 289 Test Get By ID Not Found

Lecture 290 Test Update Not Found

Lecture 291 Test Delete Not Found

Section 30: Spring Data MongoDB

Lecture 292 Running MongoDB Locally

Lecture 293 Verify MongoDB installation

Lecture 294 Create New Spring Boot Project

Lecture 295 Add Entity, Model, and Mapstruct

Lecture 296 Add Mongo Database and Client Configuration

Lecture 297 Mongo Database Authentication

Lecture 298 Add Spring Data Repository

Lecture 299 Test Save New Document

Lecture 300 Using Awaitility

Lecture 301 Implement CRUD Operations

Lecture 302 Find By Name with Spring Data Mongo

Lecture 303 Find By Beer Style with Spring Data Mongo

Lecture 304 Initializing Database

Section 31: Spring WebFlux.fn Rest Services

Lecture 305 WebFlux.fn Overview

Lecture 306 WebFlux Handler

Lecture 307 WebFlux Router

Lecture 308 Get by Id Endpoint

Lecture 309 Create Endpoint

Lecture 310 Update Endpoint

Lecture 311 Patch Endpoint

Lecture 312 Delete Endpoint

Lecture 313 Return HTTP 404 on not found

Lecture 314 Add Validation

Lecture 315 Using Query Parameters with WebFlux.fn

Section 32: Spring WebClient

Lecture 316 Create New Spring Boot Project

Lecture 317 Get List as JSON String

Lecture 318 Get List as Java Map

Lecture 319 Get List as Jackson Object

Lecture 320 Get List as Java POJOs

Lecture 321 Webclient Global Configuration

Lecture 322 Uri Components Builder

Lecture 323 Query Parameters

Lecture 324 HTTP Post with WebClient

Lecture 325 HTTP Put with WebClient

Section 33: Spring WebFlux Resource Server

Lecture 326 Maven Dependencies

Lecture 327 Spring Security Configuration

Lecture 328 Testing API Using Postman

Lecture 329 Spring webTestClient Testing with JWT

Section 34: Spring WEbflux.fn Resource Server

Lecture 330 Maven Dependencies

Lecture 331 Spring Security Configuration

Lecture 332 Testing with Postman

Lecture 333 Spring webTestClient Testing with JWT

Section 35: Using OAuth 2.0 with Spring WebClient

Lecture 334 Maven Dependencies and Spring Configuration

Lecture 335 Spring Security Configuration

Lecture 336 WebClient Filter Configuration

Section 36: Spring Cloud Gateway

Lecture 337 Overview of Spring Cloud Gateway

Lecture 338 Create Spring Cloud Gateway Project

Lecture 339 Server Port Mapping

Lecture 340 v1 Route Mapping

Lecture 341 Troubleshooting Spring Cloud Gateway

Lecture 342 Gateway Resource Server Configuration

Section 37: Spring Boot Maven Plugin

Lecture 343 The Maven Build Lifecycle

Lecture 344 Maven from the Command Line

Lecture 345 Spring Boot Executable Jars

Lecture 346 Running Spring Boot Executable Jars

Lecture 347 Spring Boot Repackage to Executable Jar

Lecture 348 Running Spring Boot With Maven

Lecture 349 Resource Filtering

Lecture 350 Maven Build Info

Section 38: Spring Boot Gradle Plugin

Lecture 351 Introduction to the Spring Boot Gradle Plugin

Lecture 352 The Gradle Build LIfecycle

Lecture 353 Gradle from the Command Line

Lecture 354 Running Spring Boot with Gradle

Lecture 355 Spring Boot Build Info

Section 39: OpenAPI with Spring Boot

Lecture 356 Introduction to OpenAPI

Lecture 357 OpenAPI for Spring Boot Development

Lecture 358 Springdoc Maven Dependencies

Lecture 359 Springdoc Spring Security Configuration

Lecture 360 Save OpenAPI Specification in Maven Build

Section 40: OpenAPI Validation with RestAssured

Lecture 361 Atlassian Swagger Request Validator

Lecture 362 RestAssured Test

Lecture 363 Spring Security Configuration

Lecture 364 Configure Swagger Request Validator

Lecture 365 Whitelist Validation Rules

Section 41: Appendix A: Using GitHub

Lecture 366 Git and GitHub Basics - Start Here!

Section 42: Extra - Kube By Example - Building Spring Boot Docker Images

Lecture 367 KBE - Course Introduction

Lecture 368 KBE - Setting Up Your Development Environment

Lecture 369 KBE - Introduction

Lecture 370 KBE - Spring Boot Project Code Review

Lecture 371 KBE - Creating Docker File

Lecture 372 KBE - Building and Running Docker Image

Lecture 373 KEB - Introduction - Building Layered Image

Lecture 374 KBE - Overview and Maven Configuration

Lecture 375 KBE - Multi-Stage Docker File

Lecture 376 KBE - Introduction - Building Docker Images with Maven

Lecture 377 KBE - Introducing Docker Maven

Lecture 378 KBE - Using Properties in Builds

Lecture 379 KBE - Pushing to Docker Hub

Section 43: Extra - Kube By Example - Spring Boot On Kubernetes

Lecture 380 KBE - Course Introduction

Lecture 381 KBE - Setting Up Your Development Environment

Lecture 382 KBE - Enable Kubernetes in Docker Desktop

Lecture 383 KBE - Introduction to Deploying on Kubernetes

Lecture 384 KBE - Create Deployment

Lecture 385 KBE - Create Service

Lecture 386 KBE - Port Forwarding

Lecture 387 KBE - Terminating Services and Deployments

Lecture 388 KBE - Exposing Services

Lecture 389 KBE - Accessing Logs

Lecture 390 KBE - Setting Environment Variables

Lecture 391 KBE - Readiness Probe

Lecture 392 KBE - Liveness Probe

Lecture 393 KBE - Graceful Shutdown

Section 44: Extra - Kube By Example - Spring Boot Microservices on Kubernetes

Lecture 394 KBE - Course Introduction

Lecture 395 KBE - Setting Up Your Development Environment

Lecture 396 KBE - Enable Kubernetes in Docker Desktop

Lecture 397 KBE - Introduction to Spring Boot Microservices on Kubernetes

Lecture 398 KBE - Overview of Microservices Used in This Course

Lecture 399 KBE - Source Code Review

Lecture 400 KBE - Running Services via Docker Compose

Lecture 401 KBE - Introduction - Infrastructure Services

Lecture 402 KBE - MySQL Service

Lecture 403 KBE - JMS Service

Lecture 404 KBE - Introduction to Spring Boot Microservices

Lecture 405 KBE - Inventory Service

Lecture 406 KBE - Inventory Failover Service

Lecture 407 KBE - Beer Service

Lecture 408 KBE - Order Service

Lecture 409 KBE - Add Readiness and Liveness Probe Configuration

Lecture 410 KBE - Add Graceful Shutdown

Lecture 411 KBE - Kubernetes Ingress Controllers

Lecture 412 KBE - Spring Cloud Gateway Service

Lecture 413 KBE - Deleting Services and Deployments

Lecture 414 KBE - Introduction to Consolidated Logging

Lecture 415 KBE - Logging Configuration Code Review

Lecture 416 KBE - Elasticsearch

Lecture 417 KBE - Kibana

Lecture 418 KBE - Filebeat

This course is ideal for Java developers who wish to use the Spring Framework for enterprise application development