Spring & Hibernate for Beginners (includes Spring Boot)

Spring & Hibernate for Beginners (includes Spring Boot)
Spring & Hibernate for Beginners (includes Spring Boot)

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 41 Hours | 16.7 GB
eLearning | Skill level: All Levels


Spring 5: Learn Spring 5 Core, AOP, Spring MVC, Spring Security, Spring REST, Spring Boot 2, Thymeleaf, JPA & Hibernate

SPRING BOOT SECTION NOW INCLUDES OVER 6.5 HOURS OF NEW VIDEOS (FEBRUARY 2019)

This course covers the LATEST VERSIONS of Spring 5 and Hibernate 5! The course also includes Spring Boot and Spring Data JPA

Build a complete Spring MVC + Hibernate CRUD web app … all from scratch! (real-time project)

You will learn about: Spring Core, AOP, Spring MVC, Spring Security, Spring REST, Spring Boot, Spring Data JPA, Spring Data REST, Thymeleaf and Hibernate … all connected to a MySQL database

By the end of this course, you will create all of the source code for a complete Spring MVC – Hibernate CRUD real-time project.

You will also develop Spring REST APIs for a full CRUD REST API real-time project.

You will type in every line of code with me in the videos … all from scratch.

I explain every line of code that we create. So this isn’t a copy/paste exercise, you will have a full understanding of the code.

You Will Learn How To

Spring Core

  • Build a complete Spring MVC and Hibernate CRUD Project … all from scratch
  • Set up your Spring and Hibernate development environment with Tomcat and Eclipse
  • Wire beans together in the Spring container using Inversion of Control
  • Configure the Spring container for Dependency Injection
  • Define Spring Beans using the @Component annotation
  • Perform auto-scanning of Spring beans to minimize configuration
  • Automatically wire beans together using @Autowired annotation
  • Apply all Java configuration to Spring Beans (no xml)

Spring MVC

  • Set up your Spring MVC environment with configs and directories
  • Create controllers using @Controller annotation
  • Read HTML form data using @RequestParam
  • Leverage Spring MVC model to transport data between controller and view page
  • Define Request Mappings for GET and POST requests
  • Minimize coding with Spring MVC Form data binding
  • Apply Spring MVC form validation on user input
  • Create custom Spring MVC form validation rules

Hibernate

  • Perform object/relational mapping with Hibernate
  • Leverage the Hibernate API to develop CRUD apps
  • Develop queries using the Hibernate Query Language (HQL)
  • Apply advanced Hibernate mappings: one-to-one, one-to-many and many-to-many
  • Create a real-time project using Spring and Hibernate together in a Real-Time Project

Spring AOP

  • Apply Aspect-Oriented-Programming AOP for cross-cutting concerns
  • Examine AOP use-cases and how AOP can resolve code-tangling
  • Create AOP pointcut expressions to match on method invocations
  • Leverage AOP annotations: @Before, @After, @AfterReturning, @AfterThrowing, @Around
  • Create a real-time project using AOP and Spring MVC together in a Real-Time Project

Spring Security

  • Secure your web application with Spring Security
  • Set up your Maven pom.xml file with compatible Spring Security dependencies
  • Configure Spring Security with all Java configuration (no xml)
  • Create custom Spring Security login pages with Bootstrap CSS
  • Add logout support using default features of Spring Security
  • Leverage Spring Security support for Cross Site Request Forgery (CSRF)
  • Define users and roles for authentication
  • Display user login info and role using Spring Security tags
  • Restrict access to URLs based on user role
  • Hide and Display content based on user role
  • Add JDBC authentication, store user accounts and passwords in the database
  • Store encrypted passwords in the database using bcrypt
  • Register new users and encrypt passwords using Java code
  • Create a Spring Security Real-Time Project using authorization, authentication and database encryption

Spring REST Web Services – Spring REST APIs

  • Overview of REST Web Services – REST APIs
  • Investigating Spring REST support
  • Sending JSON data over HTTP
  • JSON Data Binding with the Jackson project
  • Converting JSON data to Java POJO with Jackson
  • Processing nested JSON objects and JSON arrays
  • Developing a Spring REST API
  • Setting up a Spring REST project with Maven
  • Creating the Spring REST Controller using @RestController
  • Running the Spring REST Controller with Eclipse and Tomcat
  • Testing Spring REST Web Services with Postman
  • Parameterize REST API endpoints using @PathVariable
  • Add Spring REST exception handling with @ExceptionHandler
  • Integrate global REST exception handling with @ControllerAdvice
  • Leverage ResponseEntity for fine-grained control of Spring REST HTTP response
  • Build REST API to execute CRUD actions on the Database with Hibernate
  • Create a Real-Time Project using REST API with full database CRUD

Spring Boot

  • What is Spring Boot?
  • Creating a Project with Spring Boot Initializr
  • Develop a REST API Controller with Spring Boot
  • Explore the Spring Boot Project Structure
  • Leverage Spring Boot Starters – A Curated List of Dependencies
  • Inherit Defaults with Spring Boot Starter Parents
  • Automatically Restart with Spring Boot Dev Tools
  • Add DevOps functionality with Spring Boot Actuator Endpoints
  • Secure Spring Boot Actuator Endpoints
  • Run Spring Boot apps from the Command-Line
  • Use the Spring Boot Maven Plugin to package and run Spring Boot apps
  • Inject custom application properties into a Spring Boot REST Controller

Spring Boot REST API CRUD

  • Develop a REST API Controller with Spring Boot with full CRUD support
  • Configure Spring Boot Data Source for MySQL Database
  • Create DAO implementations using JPA Entity Manager
  • Apply Best Practices by integrating a Service Layer
  • Expose REST API endpoints in Controller code (GET, POST, PUT and DELETE)
  • Access the REST API using Postman
  • Add support for Standard JPA API
  • Learn the benefits of the JPA API in Spring Boot applications

Spring Boot and Spring Data JPA

  • Minimize boilerplate code with Spring Data JPA and the JpaRepository
  • Refactor existing REST API to integrate with Spring Data JPA
  • Leverage new features of the the Java Optional pattern with JpaRepository
  • Test the Spring Data JPA repository with Postman

Spring Boot and Spring Data REST

  • Accelerate your development process with Spring Data REST
  • Leverage Spring Data REST to eliminate custom code for controllers and service
  • Automatically expose REST endpoints for your JPA Repositories
  • Customize REST base path endpoints
  • Apply pagination and sorting to REST API endpoints
  • Configure default page sizes for REST APIs
  • Investigate HATEOAS compliant REST responses
  • Test Spring Data REST with Postman

Spring Boot and Thymeleaf

  • Develop view templates with Thymeleaf in Spring Boot projects
  • Compare the functionality of Thymeleaf to JSP
  • Examine the auto-configuration of Thymeleaf in Spring Boot projects
  • Create a Spring Boot project with Thymeleaf using the Spring Initializer website
  • Develop a Spring MVC Controller and a Thymeleaf template
  • Leverage Thymeleaf expressions to access data from the Spring MVC Model
  • Apply CSS stylesheets to your Thymeleaf templates

Maven

  • Simplify your build process with Maven
  • Create Maven POM files and add dependencies
  • Search Central Maven repository for Dependency Coordinates
  • Run Maven builds from the Eclipse IDE
  • Use Maven during the development of Real-Time Projects for Spring MVC, Spring Security, Spring REST and Hibernate.
+ Table of Contents

Course Introduction
1 Introduction
2 Practice Activities – Overview
3 How To Take This Course and How To Get Help
4 Downloading the Source Code and PDF Files
5 Closed Captions and Subtitles Available for English

Spring Overview
6 Why Spring? – part 1
7 Why Spring? – part 2
8 Spring 5 Update
9 Spring Core Framework – Part 1
10 Spring Core Framework – Part 2
11 Spring Platform

Setting Up Your Development Environment
12 Dev Environment Overview
13 Installing Tomcat
14 Installing Eclipse
15 Connecting Tomcat to Eclipse
16 Downloading Spring 5 JAR Files – Overview
17 Downloading Spring 5 JAR files – Installation

Spring Inversion of Control – XML Configuration
18 What is Inversion of Control?
19 Code Demo – Rough Prototype Part 1
20 Code Demo – Rough Prototype Part 2
21 Spring Inversion of Control – Overview
22 FAQ: What is a Spring Bean?
23 Spring Inversion of Control – Write Some Code – Part 1
24 Spring Inversion of Control – Write Some Code – Part 2
25 HEADS UP – Add Logging Messages in Spring 5.1
26 FAQ: Why do we specify the Coach interface in getBean()?
27 Practice Activity #1 – Inversion of Control with XML Configuration

Spring Dependency Injection – XML Configuration
28 Spring Dependency Injection – Overview
29 Spring Dependency Injection – Behind the Scenes
30 Spring Dependency Injection – Write Some Code – Part 1
31 Spring Dependency Injection – Write Some Code – Part 2
32 Spring Dependency Injection – Write Some Code – Part 3
33 FAQ: What is the purpose for the no arg constructor?
34 Setter Injection – Overview
35 Setter Injection – Write Some Code – Part 1
36 Setter Injection – Write Some Code – Part 2
37 Injecting Literal Values – Overview
38 Injecting Literal Values – Write Some Code
39 FAQ: Why do we use CricketCoach class instead of Coach Interface?
40 Injecting Values from a Properties File – Overview
41 Injecting Values from a Properties File – Write Some Code
42 Practice Activity #2 – Dependency Injection with XML Configuration

Spring Bean Scopes and Lifecycle
43 Bean Scopes – Overview
44 Bean Scopes – Write Some Code – Part 1
45 Bean Scopes – Write Some Code – Part 2
46 Bean Lifecycle – Overview
47 Special Note: Defining init and destroy methods – Method Signatures
48 Bean Lifecycle – Write Some Code
49 Special Note about Destroy Lifecycle and Prototype Scope
50 Practice Activity #3 – Bean Scopes with XML Configuration

Spring Configuration with Java Annotations – Inversion of Control
51 Annotations Overview – Component Scanning
52 Annotations Project Setup
53 Explicit Component Names – Write Some Code – Part 1
54 Explicit Component Names – Write Some Code – Part 2
55 Default Component Names – Overview
56 Default Component Names – Write Some Code
57 Practice Activity #4 – Inversion of Control with Annotations

Spring Configuration with Java Annotations – Dependency Injection
58 Constructor Injection – Overview
59 Autowiring FAQ: What if there are Multiple Implementations?
60 Constructor Injection – Write Some Code – Part 1
61 Constructor Injection – Write Some Code – Part 2
62 FAQ: Constructor Injection – Autowired Optional?
63 Setter Injection – Overview
64 Setter Injection – Write Some Code
65 Method Injection
66 Field Injection – Overview
67 Field Injection – Write Some Code
68 Which Injection Type Should You Use?
69 Qualifiers for Dependency Injection – Overview
70 Qualifiers for Dependency Injection – Write Some Code – Part 1
71 Qualifiers for Dependency Injection – Write Some Code – Part 2
72 Annotations – Default Bean Names – The Special Case
73 Using @Qualifier with Constructors
74 FAQ: How to inject properties file using Java annotations
75 Practice Activity #5 – Dependency Injection with Annotations

Spring Configuration with Java Annotations – Bean Scopes and Lifecycle Methods
76 @Scope Annotation – Overview
77 @Scope Annotation – Write Some Code
78 Bean Lifecycle Method Annotations – Overview
79 Special Note about @PostConstruct and @PreDestroy Method Signatures
80 HEADS UP – FOR JAVA 9 USERS – @PostConstruct and @PreDestroy
81 Bean Lifecycle Method Annotations – Write Some Code
82 Special Note about Destroy Lifecycle and Prototype Scope
83 Practice Activity #6 – Bean Scopes with Annotations

Spring Configuration with Java Code (no xml)
84 Spring Configuration with Java Code (no xml) – Overview
85 Spring Configuration with Java Code (no xml) – Write Some Code
86 Defining Spring Beans with Java Code (no xml) – Overview
87 Defining Spring Beans with Java Code (no xml) – Write Some Code – Part 1
88 Defining Spring Beans with Java Code (no xml) – Write Some Code – Part 2
89 Injecting Values from Properties File – Overview
90 Injecting Values from Properties File – Write Some Code – Part 1
91 Heads Up – Add Logging Messages in Spring 5.1 – All Java Config Version
92 Injecting Values from Properties File – Write Some Code – Part 2
93 FAQ: Problems with Injecting Values – Value not returning from ${foo.email}
94 Practice Activity #7 – IoC and DI with Java Configuration

Spring MVC – Building Spring Web Apps
95 Spring MVC Overview
96 Spring MVC – Behind the Scenes
97 Development Environment Checkpoint
98 Download Spring MVC Starter Files
99 Spring MVC Configuration – Overview
100 Spring MVC Configuration – JAR Files
101 Spring MVC Configuration – Config Files
102 FAQ: How to configure the Spring Dispatcher Servlet using all Java Code (no xml)

Spring MVC – Creating Controllers and Views
103 Creating a Spring Home Controller and View – Overview
104 Creating a Spring Home Controller and View – Write Some Code – Part 1
105 Creating a Spring Home Controller and View – Write Some Code – Part 2
106 FAQ: HELP! My Spring MVC Controller is not working. What to do?
107 FAQ: HELP! – Can’t Start Tomcat – Ports are in Use!
108 FAQ: How Does Component Scan Work – Your Package Names are Different!
109 Reading HTML Form Data – Overview
110 Reading HTML Form Data – Write Some Code – Part 1
111 Reading HTML Form Data – Write Some Code – Part 2
112 Reading HTML Form Data – Write Some Code – Part 3
113 Adding Data to the Spring Model – Overview
114 Adding Data to the Spring Model – Write Some Code – Part 1
115 Adding Data to the Spring Model – Write Some Code – Part 2
116 FAQ: How to use CSS, JavaScript and Images in Spring MVC Web App
117 Bonus: Deploying To Tomcat using WAR files

Spring MVC – Request Params and Request Mappings
118 Binding Request Params – Overview
119 Binding Request Params – Write Some Code
120 Controller Level Request Mapping – Overview
121 Controller Level Request Mapping – Write Some Code – Part 1
122 Controller Level Request Mapping – Write Some Code – Part 2
123 FAQ: How does “processForm” work for “/hello”?

Spring MVC – Form Tags and Data Binding
124 Spring MVC Form Tags Overview
125 Text Fields – Overview
126 Text Fields – Write Some Code – Part 1
127 Text Fields – Write Some Code – Part 2
128 Text Fields – Write Some Code – Part 3
129 Drop-Down Lists – Overview
130 Drop-Down Lists – Write Some Code – Part 1
131 Drop-Down Lists – Write Some Code – Part 2
132 FAQ: Use properties file to load country options
133 Radio Buttons – Overview
134 Radio Buttons – Write Some Code
135 FAQ: How to populate radiobuttons with items from Java class?
136 Checkboxes – Overview
137 Checkboxes – Write Some Code – Part 1
138 Checkboxes – Write Some Code – Part 2

Spring MVC Form Validation – Applying Built-In Validation Rules
139 Spring MVC Form Validation Overview
140 Setting Up Dev Environment for Form Validation
141 Installing Validation Files
142 Checking for Required Fields Overview
143 Special Note about BindingResult Parameter Order
144 Add Validation Rule to Customer Class
145 Display Validation Error Messages on HTML Form
146 Perform Validation in Controller Class – Part 1
147 Perform Validation in Controller Class – Part 2
148 Update Confirmation Page
149 Test the Validation Rule for Required Fields
150 Add Pre-processing Code with @InitBinder – Overview
151 Add Pre-processing Code with @InitBinder – Write Some Code

Spring MVC Form Validation – Validating Number Ranges and Regular Expressions
152 Validating a Number Range – Overview
153 Validating a Number Range – Write Some Code
154 Applying Regular Expressions – Overview
155 Applying Regular Expressions – Write Some Code
156 How to make Integer Field Required: freePasses
157 How to Handle String input for Integer Fields – Custom Message
158 How to Handle String input for Integer Fields – Configure Resource Bundle
159 How to Handle String input for Integer Fields – Deep Dive
160 FAQ: How to make Integer field required and handle Strings: freePasses

Spring MVC Form Validation – Creating Custom Validation Rules
161 Custom Form Validation – Overview – Part 1
162 Custom Form Validation – Overview – Part 2
163 Creating a Custom Java Annotation – Part 1
164 Creating a Custom Java Annotation – Part 2
165 Developing the ConstraintValidator
166 Adding Validation Rule to the Entity and Form
167 Testing the Custom Validation Rule
168 FAQ: Spring MVC Custom Validation – Possible to validate with multiple strings?

Introduction to Hibernate
169 Hibernate Overview
170 Hibernate and JDBC

Setting Up Hibernate Development Environment
171 Hibernate 5.2 Requires Java 8
172 Hibernate Development Environment Overview
173 Installing MySQL on MS Windows
174 Installing the MySQL Database on Mac
175 Setting Up Database Table
176 Setting up Hibernate in Eclipse
177 Testing Your JDBC Connection

Hibernate Configuration with Annotations
178 Hibernate Development Process Overview
179 Creating the Hibernate Configuration File
180 Hibernate Annotations – Part 1
181 HEADS UP – FOR JAVA 9 USERS
182 HEADS UP – JAVA 9 USERS – Eclipse Generate toString() fails
183 Hibernate Annotations – Part 2
184 FAQ: Why we are using JPA Annotation instead of Hibernate?

Hibernate CRUD Features: Create, Read, Update and Delete
185 Creating and Saving Java Objects – Part 1
186 Creating and Saving Java Objects – Part 2
187 Primary Keys – Overview
188 Primary Keys – Write Some Code
189 Primary Keys – Changing the Starting Index
190 Reading Objects with Hibernate
191 Querying Objects with Hibernate – Overview
192 Special Note about Deprecated Method in Hibernate 5.2
193 Querying Objects with Hibernate – Write Some Code – Part 1
194 Querying Objects with Hibernate – Write Some Code – Part 2
195 FAQ: How To View Hibernate SQL Parameter Values
196 Updating Objects with Hibernate – Overview
197 Updating Objects with Hibernate – Write Some Code
198 Deleting Objects with Hibernate – Overview
199 Deleting Objects with Hibernate – Write Some Code
200 Practice Activity #8 – Hibernate Development
201 FAQ: How to read Dates with Hibernate

Hibernate Advanced Mappings
202 Advanced Mappings Overview
203 Database Concepts

Hibernate Advanced Mappings – @OneToOne
204 @OneToOne – Overview – Part 1
205 @OneToOne – Overview – Part 2
206 @OneToOne – Overview – Part 3
207 @OneToOne – Run Database Scripts
208 @OneToOne – Write Some Code – Prep Work
209 @OneToOne – Write Some Code – Create InstructorDetail class
210 @OneToOne – Write Some Code – Create Instructor class
211 @OneToOne – Write Some Code – Build Main App – Part 1
212 @OneToOne – Write Some Code – Build Main App – Part 2
213 @OneToOne – Delete an Entity
214 @OneToOne – Bi-Directional Overview
215 @OneToOne – Bi-Directional – Create Relationship
216 @OneToOne – Bi-Directional – Develop Main App
217 @OneToOne – Refactoring and Exception Handling
218 @OneToOne – Bi-Directional – Cascade Delete
219 @OneToOne – Bi-Directional – Delete Only InstructorDetail – Part 1
220 @OneToOne – Bi-Directional – Delete Only InstructorDetail – Part 2

Hibernate Advanced Mappings – @OneToMany
221 @OneToMany – Bi-Directional Overview – Part 1
222 @OneToMany – Bi-Directional Overview – Part 2
223 @OneToMany – Bi-Directional – Database Prep Work
224 @OneToMany – Bi-Directional – Create Course Mapping
225 @OneToMany – Bi-Directional – Define Course Relationship
226 @OneToMany – Bi-Directional – Update Instructor
227 @OneToMany – Bi-Directional – Add Instructor to Database
228 @OneToMany – Bi-Directional – Create Courses for Instructor
229 @OneToMany – Bi-Directional – Retrieve Instructor Courses
230 @OneToMany – Bi-Directional – Delete a Course

Hibernate Advanced Mappings – Eager vs Lazy Loading
231 Eager vs Lazy Loading – Overview – Part 1
232 Eager vs Lazy Loading – Overview – Part 2
233 Eager vs Lazy Loading – Coding – Eager
234 Eager vs Lazy Loading – Coding – Lazy
235 Eager vs Lazy Loading – Coding – Closing the Session
236 Eager vs Lazy Loading – Coding – Resolve Lazy Loading Issue
237 Eager vs Lazy Loading – Coding – HQL JOIN FETCH
238 FAQ: How to load the courses at a later time in the application?

Hibernate Advanced Mappings – @OneToMany – Unidirectional
239 @OneToMany – Uni-Directional – Overview – Part 1
240 @OneToMany – Uni-Directional – Overview – Part 2
241 FAQ: @JoinColumn … where does it find the column?
242 @OneToMany – Uni-Directional – Set up database tables
243 @OneToMany – Uni-Directional – Create Review Class
244 @OneToMany – Uni-Directional – Configure Fetch Type
245 @OneToMany – Uni-Directional – Create Course Reviews
246 @OneToMany – Uni-Directional – Get Course Reviews
247 @OneToMany – Uni-Directional – Delete Course Reviews

Hibernate Advanced Mappings – @ManyToMany
248 @ManyToMany – Overview – Part 1
249 @ManyToMany – Overview – Part 2
250 @ManyToMany – Set up database tables
251 @ManyToMany – Update Course class
252 @ManyToMany – Configure Course for many-to-many
253 @ManyToMany – Configure Student for many-to-many
254 @ManyToMany – Create a Main App
255 @ManyToMany – Review app output
256 @ManyToMany – Add more courses for a student
257 @ManyToMany – Verify Data in Join Table
258 @ManyToMany – Get Courses for Student
259 @ManyToMany – Delete a Course
260 @ManyToMany – Delete a Student

Build a Database Web App – Spring MVC and Hibernate Project – Part 1
261 Project Overview and Demo
262 Source Files for Spring MVC Hibernate Web App
263 Set up Sample Data for Database
264 Test Database Connection – Part 1
265 Test Database Connection – Part 2
266 Set Up Dev Environment – Part 1
267 HEADS UP – FOR JAVA 9 and higher USERS – Spring MVC CRUD
268 Set Up Dev Environment – Part 2
269 Set Up Dev Environment – Part 3
270 Test Spring MVC Controller – Part 1
271 Test Spring MVC Controller – Part 2

Build a Database Web App – Spring MVC and Hibernate Project – Part 2
272 List Customers – Overview
273 List Customers – Overview of Development Process
274 List Customers – Creating Hibernate Entity – Part 1
275 List Customers – Creating Hibernate Entity – Part 2
276 List Customers – Developing Hibernate DAO – Overview – Part 1
277 List Customers – Developing Hibernate DAO – Overview – Part 2
278 List Customers – Developing Hibernate DAO – Write Some Code – Part 1
279 List Customers – Developing Hibernate DAO – Write Some Code – Part 2
280 List Customers – Injecting DAO into Controller
281 List Customers – Developing JSP View Page
282 Making it Pretty with CSS – Overview
283 Making it Pretty with CSS – Write Some Code – Part 1
284 Making it Pretty with CSS – Write Some Code – Part 2
285 Adding a Welcome File

Build a Database Web App – Spring MVC and Hibernate Project – Part 3
286 Refactor: @GetMapping and @PostMapping – Overview
287 Refactor: @GetMapping and @PostMapping – Write Some Code
288 Refactor: Add a Service Layer – Overview
289 Refactor: Add a Service Layer – Write Some Code – Part 1
290 Refactor: Add a Service Layer – Write Some Code – Part 2

Build a Database Web App – Spring MVC and Hibernate Project – Part 4
291 Add Customer – Overview
292 Add Customer – Setting up the Add Button – Part 1
293 Add Customer – Setting up the Add Button – Part 2
294 Add Customer – Creating the HTML Form – Part 1
295 Add Customer – Creating the HTML Form – Part 2
296 Add Customer – Creating the HTML Form – Part 3
297 Add Customer – Save to Database – Part 1
298 Add Customer – Save to Database – Part 2
299 Sort Customer Data

Build a Database Web App – Spring MVC and Hibernate Project – Part 5
300 Update Customer – Overview
301 Update Customer – Creating Update Link
302 Update Customer – Prepopulating the Form – Part 1
303 Update Customer – Prepopulating the Form – Part 2
304 Update Customer – Prepopulating the Form – Part 3
305 Update Customer – Save Customer to Database – Part 1
306 Update Customer – Save Customer to Database – Part 2

Build a Database Web App – Spring MVC and Hibernate Project – Part 6
307 Delete Customer – Overview
308 Delete Customer – Creating Delete Link – Part 1
309 Delete Customer – Creating Delete Link – Part 2
310 Delete Customer – Delete from Database – Part 1
311 Delete Customer – Delete from Database – Part 2
312 Delete Customer – Delete from Database – Part 3
313 FAQ: How to Add Search support

AOP: Aspect-Oriented Programming Overview
314 AOP – The Business Problem
315 AOP Solution and AOP Use Cases
316 Comparing Spring AOP and AspectJ

AOP: @Before Advice Type
317 AOP: @Before Advice Overview
318 AOP: AOP Project Setup
319 AOP: @Before Advice – Write Some Code
320 AOP: @Before Advice – Add and Test AOP Aspect

AOP: Pointcut Expressions – Match Methods and Return Types
321 AOP – Pointcut Expressions Overview
322 AOP – Pointcut Expressions – Match any addAccount Method – Part 2
323 AOP – Pointcut Expressions – Match only DAO addAccount – Match any add* Method
324 AOP – Pointcut Expressions – Match any Return Type

AOP: Pointcut Expressions – Match Method Parameter Types
325 AOP: Pointcut Expressions – Match Method Parameter Types Overview
326 AOP: Pointcut Expressions – Match Method with Account and more Params
327 AOP: Pointcut Expressions – Match Method Any Params – Match Method in a Package

AOP: Pointcut Declarations
328 AOP: Pointcut Declarations – Overview
329 AOP: Pointcut Declarations – Write Some Code
330 AOP: Combining Pointcuts – Overview
331 AOP: Combining Pointcuts – Write Some Code – Part 1
332 AOP: Combining Pointcuts – Write Some Code – Part 2

AOP: Ordering Aspects
333 AOP: Ordering Aspects – Overview
334 AOP: Ordering Aspects – Write Some Code – Part 1
335 AOP: Ordering Aspects – Write Some Code – Part 2

AOP: JoinPoints
336 AOP: Read Method Arguments with JoinPoints – Overview
337 AOP: Read Method Arguments with JoinPoints – Write Some Code

AOP: @AfterReturning Advice Type
338 AOP: @AfterReturning Overview
339 AOP: @AfterReturning – Write Some Code – Part 1
340 AOP: @AfterReturning – Write Some Code – Part 2
341 AOP: @AfterReturning – Write Some Code – Part 2
342 AOP: @AfterReturning – Modifying Data – Write Some Code

AOP: @AfterThrowing Advice Type
343 AOP: @AfterThrowing
344 AOP: @AfterThrowing – Write Some Code

AOP: @After Advice Type
345 AOP: @After Overview
346 AOP: @After – Write Some Code

AOP: @Around Advice Type
347 AOP: @Around Advice Overview
348 AOP: @Around – Write Some Code – Part 1
349 AOP: @Around – Write Some Code – Part 2
350 AOP: @Around Advice – Resolve Order Issue
351 AOP: @Around Advice – Handling Exceptions – Overview
352 AOP: @Around Advice – Handling Exceptions – Write Some Code
353 AOP: @Around Advice – Rethrowing Exceptions

AOP: Add AOP Logging to Spring MVC App – Real-Time Project
354 AOP: AOP and Spring MVC App – Overview
355 AOP: AOP and Spring MVC App – Write Some Code – Create Aspect
356 AOP: AOP and Spring MVC App – Write Some Code – Add @Before Advice
357 AOP: AOP and Spring MVC App – Write Some Code – Add @AfterReturning Advice

Maven Crash Course
358 Maven Overview – Part 1
359 Maven Overview – Part 2
360 Maven Key Concepts – POM file and Coordinates
361 Maven – How to Find Dependencies
362 Maven Archetypes
363 Maven – Creating a Simple Project – Part 1
364 How to Install the m2eclipse Plugin
365 Maven – Creating a Simple Project – Part 2
366 Maven – Creating a Web App Project
367 Maven – Repositories Overview
368 Maven – Local Repository
369 Maven – Central Repository (remote)
370 Maven – Additional Repositories Overview
371 Maven – Additional Repositories Demo
372 Maven – Private Repositories
373 FAQ: How to use Maven with customer-tracker project

Spring Security – Getting Started
374 Spring Security – Overview
375 Spring Security – Demo
376 Spring Security – All Java Configuration – Part 1
377 Spring Security – All Java Configuration – Part 2
378 Spring Security – Project Downloads and Setup
379 Spring Security – Maven Configuration
380 FAQ: Maven can’t find a class but I have it in pom.xml
381 Spring Security – Create Spring Java Config class
382 Spring Security – Create Spring Initializer class
383 Spring Security – Create Controller and View
384 Spring Security – Run the App
385 Spring Security – Add Spring Security Maven Dependencies
386 Spring Security – Latest Version
387 Spring Security – Add Spring Security Maven Dependencies – Demo
388 Spring Security – Basic Security (Users, Passwords and Roles)
389 Spring Security – Create Security Initializer
390 HEADS UP – New Spring Security 5.0.2 – Deprecated method
391 Spring Security – Create Security Config

Spring Security – Adding Custom Login Form
392 Spring Security – Rename Context Roots
393 Spring Security – Dev and Testing with New Private Window
394 Spring Security – Custom Login Form Overview – Part 1
395 Spring Security – Custom Login Form Overview – Part 2
396 Spring Security – Spring Config for Custom Login Form
397 Spring Security – Create Request Mapping for Login Form
398 Spring Security – Building Custom Login Form
399 Spring Security – Testing Custom Login Form
400 Spring Security – Adding Login Error Message – Overview
401 Spring Security – Adding Login Error Message – Coding

Spring Security – Boostrap CSS Login Form
402 Spring Security – Bootstrap CSS Login Form
403 Spring Security – Bootstrap CSS Login Form – Adding Form
404 Spring Security – Bootstrap CSS Login Form – Customizing Form
405 Spring Security – Bootstrap CSS Login Form – Testing

Spring Security – Adding Logout Support
406 Spring Security – Logout Overview
407 Spring Security – Logout Configuration
408 Spring Security – Customizing Logout Message

Spring Security – Cross Site Request Forgery (CSRF)
409 Spring Security – Cross Site Request Forgery (CSRF)
410 Spring Security – Viewing CSRF Tokens
411 Spring Security – Manually Adding CSRF Tokens

Spring Security – User Roles
412 Spring Security – Displaying User ID and Roles – Overview
413 Spring Security – Displaying User ID and Roles – Write Some Code
414 Spring Security – Displaying User ID and Roles – Test the App

Spring Security – Restrict Access Based on Role
415 Spring Security – Restrict Access – Overview
416 Spring Security – Restrict Access – Update Home Page
417 Spring Security – Restrict Access – Create Controller and Views
418 Spring Security – Restrict Access – Security Configuration
419 Spring Security – Restrict Access – Test Admin Access
420 Spring Security – Create a Custom “Access Denied” Page – Overview
421 Spring Security – Create a Custom “Access Denied” Page – Configuration
422 Spring Security – Create a Custom “Access Denied” Page – Coding
423 Spring Security – Display Content based on Roles – Overview
424 Spring Security – Display Content based on Roles – Write Some Code
425 Spring Security – Display Content based on Roles – Testing

Spring Security – Add JDBC Database Authentication
426 Spring Security JDBC – Overview – Defining Database Schema
427 Spring Security JDBC – Overview – DataSource Configuration
428 Spring Security JDBC – Overview – Add JDBC Authentication
429 Spring Security JDBC – Coding – Run SQL Script
430 Spring Security JDBC – Coding – Update Maven POM File
431 Spring Security JDBC – Coding – Add JDBC Properties File
432 Spring Security JDBC – Coding – Define DataSource
433 Spring Security JDBC – Coding – Reading Props File
434 Spring Security JDBC – Coding – Configure Data Source
435 Spring Security JDBC – Coding – Add JDBC Authentication
436 Spring Security JDBC – Coding – Test the App

Spring Security – Password Encryption
437 Spring Security – Password Encryption – Bcrypt Overview
438 bcrypt Additional Resources
439 Spring Security – Password Encryption – Spring Configuration
440 Spring Security – Password Encryption – Setting up Database Schema
441 Spring Security – Password Encryption – Bcrypt Configuration
442 Spring Security – Password Encryption – Testing Passwords
443 Bonus Lecture: Spring Security – User Registration
444 Bonus Lecture: Adding Spring Security to CRM App

Spring REST – Overview
445 Spring REST – What are REST Web Services? – Part 1
446 Spring REST – What are REST Web Services? – Part 2

Spring REST – JSON Data Binding
447 Spring REST – JSON Overview
448 Spring REST – JSON Data Binding with Jackson – Overview 1
449 Spring REST – JSON Data Binding with Jackson – Overview 2
450 Spring REST – JSON Jackson Demo – Set Up Maven Project
451 Spring REST – JSON Jackson Demo – Processing JSON
452 Spring REST – JSON Jackson Demo – Nested Objects and Arrays
453 Spring REST – JSON Jackson Demo – Display Nested and Arrays
454 Spring REST – JSON Jackson Demo – Ignore Properties

Spring REST – Create a Spring REST Controller
455 Spring REST – HTTP Overview
456 Spring REST – Install a REST Client
457 Spring REST – Creating a Spring REST Controller – Overview 1
458 Spring REST – Creating a Spring REST Controller – Overview 2
459 Spring REST – REST Controller Demo – Set Up Maven Project
460 Spring REST – REST Controller Demo – Set Up All Java Configuration
461 Spring REST – REST Controller Demo – Creating the REST Controller
462 Spring REST – App Enhancement with Default Page

Spring REST – Retrieve POJOs as JSON
463 Spring REST – Retrieve POJOs as JSON – Overview
464 Spring REST – Retrieve POJOs as JSON – Create POJO
465 Spring REST – Retrieve POJOs as JSON – Create REST Controller
466 Spring REST – Retrieve POJOs as JSON – Test REST Controller

Spring REST – Using @PathVariable for REST Endpoints
467 Spring REST – Using @PathVariable for REST Endpoints – Overview
468 Spring REST – Using @PathVariable for REST Endpoints – Refactoring Code
469 Spring REST – Using @PathVariable for REST Endpoints – Coding @PathVariable

Spring REST – Exception Handling
470 Spring REST – Exception Handling Overview – Part 1
471 Spring REST – Exception Handling Overview – Part 2
472 Spring REST – Exception Handling – Create Custom Error Response and Exception
473 Spring REST – Exception Handling – Update REST Service to throw Exception
474 Spring REST – Exception Handling – Add Exception Handler with @ExceptionHandler
475 Spring REST – Exception Handling – Test the App
476 Spring REST – Exception Handling – Adding Generic Exception Handler
477 Spring REST – Global Exception Handling Overview
478 Spring REST – Global Exception Handling with @ControllerAdvice

Spring REST – API Design Best Practices
479 Spring REST – API Design Best Practices
480 Spring REST – API Design of Real-Time Projects (PayPal, Github and SalesForce)

Spring REST – CRUD Database Real-Time Project – Overview
481 Spring REST – CRUD Database Real-Time Project – Overview
482 Spring REST – Import Maven Project
483 Spring REST – Maven POM file and All Java Config (no xml)
484 Spring REST – Project Service and DAO
485 Spring REST – Create Database Tables

Spring REST – CRUD Database Real-Time Project – Get Customers
486 Spring REST – CRUD Database Real-Time Project – Get Customers Overview
487 Spring REST – CRUD Database Real-Time Project – Create REST Controller
488 Spring REST – CRUD Database Real-Time Project – Testing in Postman
489 Spring REST – CRUD Database Real-Time Project – Get Single Customer Overview
490 Spring REST – CRUD Database Real-Time Project – Get Single Customer – Testing

Spring REST – CRUD Database Real-Time Project – Exception Handling
491 Spring REST – CRUD Database Real-Time Project – Exception Handling – Responses
492 Spring REST – CRUD Database Real-Time Project – Exception Handling – Refactor
493 Spring REST – CRUD Database Real-Time Project – Exception Handling – Annotation
494 Spring REST – CRUD Database Real-Time Project – Exception Handling – Catch All

Spring REST – CRUD Database Real-Time Project – Add Customer
495 Spring REST – CRUD Database Real-Time Project – Add Customer – Overview
496 Spring REST – CRUD Database Real-Time Project – Add Customer – Coding
497 Spring REST – CRUD Database Real-Time Project – Add Customer – Testing

Spring REST – CRUD Database Real-Time Project – Update Customer
498 Spring REST – CRUD Database Real-Time Project – Update Customer – Overview
499 Spring REST – CRUD Database Real-Time Project – Update Customer – Coding

Spring REST – CRUD Database Real-Time Project – Delete Customer
500 Spring REST – CRUD Database Real-Time Project – Delete Customer – Overview
501 Spring REST – CRUD Database Real-Time Project – Delete Customer – Coding
502 Spring REST – CRUD Database Real-Time Project – Delete Customer – Testing

Spring REST – Bonus Lecture – Securing REST API Endpoints with Spring Security
503 Bonus Lecture: Securing REST API Endpoints

Spring Boot – Overview
504 Spring Boot – What is Spring Boot?
505 Spring Boot – Creating a Project with Spring Boot Initializr
506 Spring Boot – Developing a REST API Controller with Spring Boot
507 Spring Boot – Exploring the Spring Boot Project Structure – Part 1
508 Spring Boot – Exploring the Spring Boot Project Structure – Part 2
509 Spring Boot – Spring Boot Starters – A Curated List of Dependencies
510 Spring Boot – Parents for Spring Boot Starters

Spring Boot – Spring Boot Dev Tools and Spring Boot Actuator
511 Spring Boot – Dev Tools
512 Spring Boot – Spring Boot Actuator – Overview
513 Spring Boot – Spring Boot Actuator – Accessing Actuator Endpoints
514 Spring Boot – Spring Boot Actuator – Applying Security to Actuator Endpoints

Spring Boot – Running Spring Boot Apps from the Command Line
515 Spring Boot – Running Spring Boot Apps from the Command Line – Overview
516 Spring Boot – Running Spring Boot Apps from the Command Line – Coding

Spring Boot – Application Properties
517 Spring Boot – Injecting Custom Application Properties
518 Spring Boot – Configuring the Spring Boot Server

Spring Boot – Build a REST CRUD API with Hibernate – Real-Time Project
519 Spring Boot – REST CRUD Real-Time Project Overview and Database Set Up
520 Spring Boot – Create Project with Spring Initializr
521 Spring Boot – Integrating Hibernate and JPA
522 Spring Boot – Configuring the Spring Boot Data Source
523 Spring Boot – Developing the DAO Interface and Implementation
524 Spring Boot – Creating REST Controller Methods
525 Spring Boot – Additional CRUD Methods for DAO
526 Spring Boot – Refactoring the Code to use a Service Layer
527 Spring Boot – REST Controller Methods to Find and Add Employee
528 Spring Boot – REST Controller Methods to Update and Delete an Employee

Spring Boot – Build a REST CRUD API with JPA – Real-Time Project
529 Spring Boot – REST JPA Overview
530 Spring Boot – Creating JPA DAO Implementation for REST API
531 Spring Boot – Testing the REST API with JPA DAO Implementation

Spring Boot – Spring Data JPA – Real-Time Project
532 Spring Boot – Spring Data JPA Overview
533 Spring Boot – Creating Spring Data JPA Repository
534 Spring Boot – Testing the REST API with Spring Data JPA Repository

Spring Boot – Spring Data REST – Real-Time Project
535 Spring Boot – Spring Data REST Overview
536 Spring Boot – Spring Data REST – Creating a REST API
537 Spring Boot – Spring Data REST – Configuration, Pagination and Sorting

Spring Boot – Thymeleaf
538 Spring Boot – Thymeleaf Overview
539 Spring Boot – Thymeleaf Helloworld – Create a Thymeleaf App
540 Spring Boot – Thymeleaf Helloworld – Apply CSS Stylesheets

Spring Boot – Thymeleaf – Build HTML Tables
541 Spring Boot – Thymeleaf – Build HTML Tables – Overview
542 Spring Boot – Thymeleaf – Build HTML Tables – Write Some Code
543 Spring Boot – Thymeleaf – Add Bootstrap CSS

Spring Boot – Thymeleaf – CRUD Database Real-Time Project
544 Spring Boot – Thymeleaf – CRUD Database Project – Get Employees – Part 1
545 Spring Boot – Thymeleaf – CRUD Database Project – Get Employees – Part 2
546 Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Add Employee – Part 1
547 Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Add Employee – Part 2
548 Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Add Employee – Part 3
549 Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Update Employee – 1
550 Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Update Employee – 2
551 Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Delete Employee

Summary
552 Thank You and Please Leave a Rating for the Course
553 Direct Links to My Java Courses

Appendix
554 FAQ: Spring Student Questions