• Post category:StudyBullet-16
  • Reading time:70 mins read


Spring Boot 3: Learn Spring 6, Spring Core, Spring REST, Spring MVC, Spring Security, Thymeleaf, JPA, Hibernate, MySQL

What you will learn

NEW FOR 2024: SPRING BOOT 3, SPRING 6 and IntelliJ (free version)

You will TYPE IN EVERY LINE of code with me in the videos. I EXPLAIN every line of code to help you learn!

LEARN key Spring Boot 3 features: Core, Annotations, Java Config, Spring REST, Spring MVC, AOP, Hibernate/JPA and Maven

I am a RESPONSIVE INSTRUCTOR … post your questions and I will RESPOND in 24 hours.

POPULAR VIDEOS for: Spring Boot 3, Spring Boot REST APIs, Spring Boot Security, Spring Data JPA, Spring Data REST and Thymeleaf

Join an ACTIVE COMMUNITY of 350,000+ students that are already enrolled! Over 78,000+ Reviews – 5 STARS

Develop code using MODERN development tools: IntelliJ (free version) and Maven

You can DOWNLOAD all source code and PDFs. Perfect for offline LEARNING and REVIEW.

Students have LANDED NEW JOBS with the skills from this course. Spring Boot and Hibernate developers are in HIGH-DEMAND!

Description

NEW FOR SPRING BOOT 3 AND SPRING 6

POPULAR IDE – IntelliJ (free version)

#1 BEST SELLING SPRING BOOT & HIBERNATE COURSE ON UDEMY – 350,000+ STUDENTS ENROLLED

OVER 78,000 REVIEWS – 5 STARS!

THIS COURSE COVERS SPRING BOOT 3 AND SPRING 6

LEARN these HOT TOPICS in Spring Boot 3 and Spring 6:

  • Spring Boot 3
  • Spring Framework 6
  • Spring Boot 3 Core
  • Spring Boot 3 Annotations
  • Spring Boot 3 Java Configuration (all Java, no xml)
  • Spring Boot 3 and Spring MVC
  • Spring Boot 3 Hibernate/JPA CRUD
  • Spring Boot 3 Security
  • Spring Boot 3 REST API
  • Maven

REAL-TIME PROJECTS

  • Spring Boot 3 REST API (with full database CRUD real-time project)
  • Spring Boot 3 REST API Security (with password encryption in the database)
  • Spring Boot 3 with JPA and Spring Data JPA (with full database CRUD real-time project)
  • Spring Boot 3 with Spring Data REST (with full database CRUD real-time project)
  • Spring Boot 3 with Spring MVC, Thymeleaf (with full database CRUD real-time project)

COURSE UPDATES

Updated course to SPRING BOOT 3 and SPRING 6

This course covers the LATEST VERSIONS of Spring Boot 3, Spring 6 and Hibernate 6!

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

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

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

You will also develop Spring Boot 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.

I am a RESPONSIVE INSTRUCTOR . Post your questions and I will RESPOND in 24 hours.

Join 350,000+ students that are already enrolled!

Over 78,000+ Reviews! (the most reviews for any Spring Boot & Hibernate course on Udemy, nearly TRIPLE the nearest competitor)

=

Sample of the reviews:

Best Spring Boot course by far across all learning platforms for me. Best course structure and instructor always demonstrates in depth knowledge by covering the necessary basics. Really really incredible good presentation and structure, a lot of other instructors can learn a lot from you Chad. – Muzi P.

I worked in some company, so I can say that this course is 100% industry oriented. The best course for learning Spring Framework. Getting replies within 24 hours. – Premang

I’m adding to my review following Chad’s recent updates to his course to cover Spring Boot, JPA, etc. After finishing the course originally, I found another Spring Boot class, and after working on this other class, I appreciate more what Chad has done here. He’s made Spring Boot for CRUD applications with Thymeleaf very easy to follow and learn. I’ve taken half a dozen other software courses, and while other instructors might be good, Chad is the gold standard here. I can’t recommend him highly enough. – Dave Zeltserman

This is the best tutorial I’ve seen so far for Spring/Hibernate, each step is well explained and the tutorial videos are made to a high standard. I highly recommend this course! – Rob

Hats off to you Chad, the best Spring fundamentals course I have done on Udemy thus far. You never disappoint. – Morebodi Modise

Chad is an excellent natural teacher. His course is well organized. He makes difficult concepts very easy to understand. – Julie Hodgson

=

Live Coding – I code all of the real-time projects from scratch

All source code is available for download

Responsive Instructor – All questions answered within 24 hours

=

PDFs of all lectures are available for download

Closed-Captions / Subtitles available for English and other languages (new!)

Professional video and audio recordings (check the free previews)

=

What Is Spring Boot?

Spring Boot is the modern development approach for building enterprise application. Spring Boot minimizes the configuration required for setting up Spring projects. By using Spring Boot, you can accelerate your development speed and leverage the auto-configuration features. This course covers the latest version of Spring Boot 3.


Get Instant Notification of New Courses on our Telegram channel.


What Is Spring?

Spring is an enterprise Java framework. It was designed to simplify Jakarta EE development and make developers more productive. Spring makes use of Inversion of Control and Dependency Injection to promote good software coding practices and speed up development time. This course covers the latest version of Spring 6.

This course covers Spring Core, Annotations, All Java Spring Configuration, Spring AOP, Spring MVC, Spring Security, Spring REST, Spring Boot and Spring Data JPA.

What Is Hibernate/JPA?

Hibernate/JPA is an Object-to-Relational-Mapping (ORM) framework. It simplifies database access for Java applications. By using the framework, you can easily store and retrieve Java objects by setting up some simple configuration mappings.

This course covers basic Hibernate/JPA CRUD. Also, advanced Hibernate/JPA mappings are covered for one-to-one, one-to-many and many-to-many.

Benefits of Taking This Spring Boot and Hibernate Course

Knowing Spring Boot and Hibernate can get you a job or improve the one you have. It’s a skill that will put you more in demand in the enterprise Java industry, and make your software life easier, that’s why it’s so popular.

Nearly every job posting asks for skills in Spring Boot and Hibernate!

This course will help you quickly get up to speed with Spring Boot and Hibernate. I will demystify the technology and help you understand the essential concepts to build a real Spring Boot and Hibernate application from scratch.

You Will Learn How To

  • 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
  • Maven
    • Simplify your build process with Maven
    • Create Maven POM files and add dependencies
    • Run Maven builds from the IDE
    • Use Maven during the development of Real-Time Projects for Spring Boot MVC, Spring Boot Security, Spring Boot REST API and Hibernate/JPA
  • Spring Core
    • Build a complete Spring MVC and Hibernate/JPA CRUD Project … all from scratch
    • Set up your Spring Boot and Hibernate/JPA
    • 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 Security
    • Secure your REST APIs and web applications with Spring Boot Security
    • Set up your Maven pom.xml file with Spring Boot Security starter
    • Configure Spring Boot Security with all Java configuration (no xml)
    • Create custom Spring Boot Security login pages with Bootstrap CSS
    • Add logout support using default features of Spring Boot Security
    • Leverage Spring Boot Security support for Cross Site Request Forgery (CSRF)
    • Define users and roles for authentication
    • Display user login info and role using Spring Boot 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 APIs
    • Overview of REST APIs
    • Investigating Spring Boot REST support
    • Sending JSON data over HTTP
    • JSON Data Binding with the Jackson project
    • Converting JSON data to Java POJO with Jackson
    • Developing a Spring Boot REST API
    • Setting up a Spring Boot REST project with Maven
    • Creating the Spring Boot REST Controller using RestController
    • Running the Spring Boot REST Controller with the IDE
    • Testing Spring Boot REST Web Services with Postman
    • Parameterize Spring Boot REST API endpoints using PathVariable
    • Add Spring Boot REST exception handling with ExceptionHandler
    • Integrate global Spring Boot REST exception handling with ControllerAdvice
    • Leverage ResponseEntity for fine-grained control of Spring Boot REST HTTP response
    • Build Spring Boot REST API to execute CRUD actions on the Database with Hibernate/JPA
    • Create a Real-Time Project using Spring Boot REST API with full database CRUD
  • Spring 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
  • 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 MVC
    • Set up your Spring Boot MVC environment with configs and directories
    • Create controllers using Controller annotation
    • Read HTML form data using RequestParam
    • Leverage Spring Boot MVC model to transport data between controller and view page
    • Define Request Mappings for GET and POST requests
    • Minimize coding with Spring Boot MVC Form data binding
    • Leverage Thymeleaf expressions to access data from the Spring Boot MVC Model
    • Apply CSS stylesheets to your Thymeleaf templates
  • Spring MVC Validation
    • Create a Spring MVC Validation project using the Spring Initializr website
    • Apply validation rules for required fields, number ranges and regular expressions
    • Leverage the InitBinder and StringTrimmerEditor to trim white spaces
    • Configure error messages using the messages properties file
    • Develop a custom validation rule using annotations
  • Spring Boot and Thymeleaf
    • Develop view templates with Thymeleaf in Spring Boot projects
    • 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 Boot MVC Controller and a Thymeleaf template
  • Spring Boot, Thymeleaf and Database CRUD
    • Develop a real-time project with Thymeleaf and Spring Boot with full database CRUD support
    • Integrate the Repository to execute CRUD actions on the Database with Spring Data JPA
    • Apply best practices with the Service layer design pattern
    • Create a Controller to handle web browser requests
    • Develop Thymeleaf templates to render database results
    • Beautify your Thymeleaf templates with Bootstrap CSS
  • AOP: Aspect Oriented Programming
    • Set up a Spring Boot project for AOP
    • Apply AOP concepts: Aspects, advices and pointcut expressions
    • Add logging messages using the Before advice
    • Define pointcut expressions to match on parameters, return types and packages
    • Create reusable pointcut expressions
    • Combine pointcut expressions using logical operators
    • Control the execution order of aspects using Order
    • Access method execution metadata using JoinPoints
    • Leverage JoinPoints to read method arguments
    • Apply an AfterReturning advice to post-process the data
    • Integrate AfterThrowing advice to access exceptions
    • Develop an AOP Advice using Around to pre-process and post-process method calls
    • Integrate AOP into a Spring MVC CRUD app

Compared to other Spring Boot/Hibernate courses

This course is fully up to date and covers the latest versions of Spring Boot 3, Spring 6 and Hibernate 6. The course also includes new content on Spring Boot 3, Spring Data JPA, Spring Data REST and Thymeleaf.

Beware of other Udemy Spring/Hibernate courses. Most of them are outdated and use old versions of Spring and Hibernate. Don’t waste your time or money on learning outdated technology.

Also, I create all of the code from scratch in this course. Beware of other courses, those instructors simply copy/paste from their github repo or they use pre-written code. Their approach is not ideal for real-time learning.

Take my course where I show you how to create all of the code from scratch. You can type the code along with me in the videos, which is the best way to learn.

I am a very responsive instructor and I am available to answer your questions and help you work through any problems.

Finally, all source code is provided with the course along with setup instructions.

Student Reviews Prove This Course’s Worth

Those who have reviewed the course have pointed out that the instruction is clear and easy to follow, as well as thorough and highly informative.

Many students had also taken other Spring Boot and Hibernate courses in the past, only to find that this Spring Boot and Hibernate course was their favorite. They enjoyed the structure of the content and the high quality audio/video.

Sample of the Student Reviews:

Best Spring Boot course by far across all learning platforms for me. Best course structure and instructor always demonstrates in depth knowledge by covering the necessary basics. Really really incredible good presentation and structure, a lot of other instructors can learn a lot from you Chad. – Muzi P.

I worked in some company, so I can say that this course is 100% industry oriented. The best course for learning Spring Framework. Getting replies within 24 hours. – Premang

Chad Darby has done a superb job organizing this course, and has made Spring Framework, MVC, AOP, Hibernate, Security easy to learn and use. I have a bs and ms in CS, have been developing software for 25 years, and have taken many courses over the years at the different companies I’ve been at and Chad is easily the best instructor I’ve had. – Dave Zeltserman

This is the best tutorial I’ve seen so far for Spring/Hibernate, each step is well explained and the tutorial videos are made to a high standard. I highly recommend this course! – Rob

Hats off to you Chad, the best Spring fundamentals course I have done on Udemy thus far. You never disappoint. – Morebodi Modise

Chad is an excellent natural teacher. His course is well organized. He makes difficult concepts very easy to understand. – Julie Hodgson

Quality Material

You will receive a quality course, with solid technical material and excellent audio and video production.

My courses have received rave 5 star reviews and over 700,000 students have taken the courses. Also, these courses are the most popular courses in their respective categories.

Similar thing for this Spring Boot course, it is ranked as #1 best seller for Spring courses.

I also have an active YouTube channel where I post regular videos. In the past year, I’ve created over 300 video tutorials (public and private). My YouTube channel has over 6.8 million views and 40k subscribers. So I understand what works and what doesn’t work for creating video tutorials.

No Risk – Udemy Refund

Finally, there is no risk. You can preview 25% of the course for free. Once you purchase the course, if for some reason you are not happy with the course, Udemy offers a 30-day refund (based on Udemy’s Refund Policy).

So you have nothing to lose, sign up for this course and learn how to build Spring Boot and Hibernate Real-Time Projects from scratch!

Target Audience

  • Java Developers with basic Java experience
English
language

Content

Course Introduction

Introduction
Practice Activities – Overview
How To Take This Course and How To Get Help
Downloading the Source Code and PDF Files
Closed Captions and Subtitles Available

Spring Overview

Why Spring? – part 1
Why Spring? – part 2
Spring 5 Update
Spring Core Framework – Part 1
Spring Core Framework – Part 2
Spring Platform

Setting Up Your Development Environment

Dev Environment Overview
Installing Tomcat
Installing Eclipse
Connecting Tomcat to Eclipse
Downloading Spring 5 JAR Files – Overview
Downloading Spring 5 JAR files – Installation

Spring Inversion of Control – XML Configuration

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

Spring Dependency Injection – XML Configuration

Spring Dependency Injection – Overview
Spring Dependency Injection – Behind the Scenes
Spring Dependency Injection – Write Some Code – Part 1
Spring Dependency Injection – Write Some Code – Part 2
Spring Dependency Injection – Write Some Code – Part 3
FAQ: What is the purpose for the no arg constructor?
Setter Injection – Overview
Setter Injection – Write Some Code – Part 1
Setter Injection – Write Some Code – Part 2
Injecting Literal Values – Overview
Injecting Literal Values – Write Some Code
FAQ: Why do we use CricketCoach class instead of Coach Interface?
Injecting Values from a Properties File – Overview
Injecting Values from a Properties File – Write Some Code
Practice Activity #2 – Dependency Injection with XML Configuration

Spring Bean Scopes and Lifecycle

Bean Scopes – Overview
Bean Scopes – Write Some Code – Part 1
Bean Scopes – Write Some Code – Part 2
Bean Lifecycle – Overview
Special Note: Defining init and destroy methods – Method Signatures
Bean Lifecycle – Write Some Code
Special Note about Destroy Lifecycle and Prototype Scope
Practice Activity #3 – Bean Scopes with XML Configuration

Spring Configuration with Java Annotations – Inversion of Control

Annotations Overview – Component Scanning
Annotations Project Setup
Explicit Component Names – Write Some Code – Part 1
Explicit Component Names – Write Some Code – Part 2
Default Component Names – Overview
Default Component Names – Write Some Code
Practice Activity #4 – Inversion of Control with Annotations

Spring Configuration with Java Annotations – Dependency Injection

Constructor Injection – Overview
Autowiring FAQ: What if there are Multiple Implementations?
Constructor Injection – Write Some Code – Part 1
Constructor Injection – Write Some Code – Part 2
FAQ: Constructor Injection – Autowired Optional?
Setter Injection – Overview
Setter Injection – Write Some Code
Method Injection
Field Injection – Overview
Field Injection – Write Some Code
Which Injection Type Should You Use?
Qualifiers for Dependency Injection – Overview
Qualifiers for Dependency Injection – Write Some Code – Part 1
Qualifiers for Dependency Injection – Write Some Code – Part 2
Annotations – Default Bean Names – The Special Case
Using @Qualifier with Constructors
FAQ: How to inject properties file using Java annotations
Practice Activity #5 – Dependency Injection with Annotations

Spring Configuration with Java Annotations – Bean Scopes and Lifecycle Methods

@Scope Annotation – Overview
@Scope Annotation – Write Some Code
Bean Lifecycle Method Annotations – Overview
Special Note about @PostConstruct and @PreDestroy Method Signatures
HEADS UP – FOR JAVA 9 USERS – @PostConstruct and @PreDestroy
Bean Lifecycle Method Annotations – Write Some Code
Special Note about Destroy Lifecycle and Prototype Scope
Practice Activity #6 – Bean Scopes with Annotations

Spring Configuration with Java Code (no xml)

Spring Configuration with Java Code (no xml) – Overview
Spring Configuration with Java Code (no xml) – Write Some Code
Heads Up – Add Logging Messages in Spring 5.1 – All Java Config Version
Defining Spring Beans with Java Code (no xml) – Overview
Defining Spring Beans with Java Code (no xml) – Write Some Code – Part 1
Defining Spring Beans with Java Code (no xml) – Write Some Code – Part 2
FAQ: How @Bean works behind the scenes
Injecting Values from Properties File – Overview
Injecting Values from Properties File – Write Some Code – Part 1
Injecting Values from Properties File – Write Some Code – Part 2
FAQ: Problems with Injecting Values – Value not returning from ${foo.email}
Practice Activity #7 – IoC and DI with Java Configuration

Spring MVC – Building Spring Web Apps

Spring MVC Overview
Spring MVC – Behind the Scenes
Development Environment Checkpoint
Download Spring MVC Starter Files
Spring MVC Configuration – Overview
Spring MVC Configuration – JAR Files
Spring MVC Configuration – Config Files
FAQ: How to configure the Spring Dispatcher Servlet using all Java Code (no xml)

Spring MVC – Creating Controllers and Views

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

Spring MVC – Request Params and Request Mappings

Binding Request Params – Overview
Binding Request Params – Write Some Code
Controller Level Request Mapping – Overview
Controller Level Request Mapping – Write Some Code – Part 1
Controller Level Request Mapping – Write Some Code – Part 2
FAQ: How does “processForm” work for “/hello”?

Spring MVC – Form Tags and Data Binding

Spring MVC Form Tags Overview
Text Fields – Overview
Text Fields – Write Some Code – Part 1
Text Fields – Write Some Code – Part 2
Text Fields – Write Some Code – Part 3
Drop-Down Lists – Overview
Drop-Down Lists – Write Some Code – Part 1
Drop-Down Lists – Write Some Code – Part 2
FAQ: Use properties file to load country options
Radio Buttons – Overview
Radio Buttons – Write Some Code
FAQ: How to populate radiobuttons with items from Java class?
Checkboxes – Overview
Checkboxes – Write Some Code – Part 1
Checkboxes – Write Some Code – Part 2

Spring MVC Form Validation – Applying Built-In Validation Rules

Spring MVC Form Validation Overview
Setting Up Dev Environment for Form Validation
Installing Validation Files
Checking for Required Fields Overview
Special Note about BindingResult Parameter Order
Add Validation Rule to Customer Class
Display Validation Error Messages on HTML Form
Perform Validation in Controller Class – Part 1
Perform Validation in Controller Class – Part 2
Update Confirmation Page
Test the Validation Rule for Required Fields
Add Pre-processing Code with @InitBinder – Overview
Add Pre-processing Code with @InitBinder – Write Some Code

Spring MVC Form Validation – Validating Number Ranges and Regular Expressions

Validating a Number Range – Overview
Validating a Number Range – Write Some Code
Applying Regular Expressions – Overview
Applying Regular Expressions – Write Some Code
How to make Integer Field Required: freePasses
How to Handle String input for Integer Fields – Custom Message
How to Handle String input for Integer Fields – Configure Resource Bundle
How to Handle String input for Integer Fields – Deep Dive
FAQ: How to make Integer field required and handle Strings: freePasses

Spring MVC Form Validation – Creating Custom Validation Rules

Custom Form Validation – Overview – Part 1
Custom Form Validation – Overview – Part 2
Creating a Custom Java Annotation – Part 1
Creating a Custom Java Annotation – Part 2
Developing the ConstraintValidator
Adding Validation Rule to the Entity and Form
Testing the Custom Validation Rule
FAQ: Spring MVC Custom Validation – Possible to validate with multiple strings?

Introduction to Hibernate

Hibernate Overview
Hibernate and JDBC

Setting Up Hibernate Development Environment

Hibernate 5.2 Requires Java 8
Hibernate Development Environment Overview
Installing MySQL on MS Windows
Installing the MySQL Database on Mac
Setting Up Database Table
Setting up Hibernate in Eclipse
Testing Your JDBC Connection

Hibernate Configuration with Annotations

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

Hibernate CRUD Features: Create, Read, Update and Delete

Creating and Saving Java Objects – Part 1
Creating and Saving Java Objects – Part 2
Primary Keys – Overview
Primary Keys – Write Some Code
Primary Keys – Changing the Starting Index
Reading Objects with Hibernate
Querying Objects with Hibernate – Overview
Special Note about Deprecated Method in Hibernate 5.2
Querying Objects with Hibernate – Write Some Code – Part 1
Querying Objects with Hibernate – Write Some Code – Part 2
FAQ: How To View Hibernate SQL Parameter Values
Updating Objects with Hibernate – Overview
Updating Objects with Hibernate – Write Some Code
Deleting Objects with Hibernate – Overview
Deleting Objects with Hibernate – Write Some Code
Practice Activity #8 – Hibernate Development
FAQ: How to read Dates with Hibernate

Hibernate Advanced Mappings

Advanced Mappings Overview
Database Concepts

Hibernate Advanced Mappings – @OneToOne

@OneToOne – Overview – Part 1
@OneToOne – Overview – Part 2
@OneToOne – Overview – Part 3
@OneToOne – Run Database Scripts
@OneToOne – Write Some Code – Prep Work
@OneToOne – Write Some Code – Create InstructorDetail class
@OneToOne – Write Some Code – Create Instructor class
@OneToOne – Write Some Code – Build Main App – Part 1
@OneToOne – Write Some Code – Build Main App – Part 2
@OneToOne – Delete an Entity
@OneToOne – Bi-Directional Overview
@OneToOne – Bi-Directional – Create Relationship
@OneToOne – Bi-Directional – Develop Main App
@OneToOne – Refactoring and Exception Handling
@OneToOne – Bi-Directional – Cascade Delete
@OneToOne – Bi-Directional – Delete Only InstructorDetail – Part 1
@OneToOne – Bi-Directional – Delete Only InstructorDetail – Part 2

Hibernate Advanced Mappings – @OneToMany

@OneToMany – Bi-Directional Overview – Part 1
@OneToMany – Bi-Directional Overview – Part 2
@OneToMany – Bi-Directional – Database Prep Work
@OneToMany – Bi-Directional – Create Course Mapping
@OneToMany – Bi-Directional – Define Course Relationship
@OneToMany – Bi-Directional – Update Instructor
@OneToMany – Bi-Directional – Add Instructor to Database
@OneToMany – Bi-Directional – Create Courses for Instructor
@OneToMany – Bi-Directional – Retrieve Instructor Courses
@OneToMany – Bi-Directional – Delete a Course

Hibernate Advanced Mappings – Eager vs Lazy Loading

Eager vs Lazy Loading – Overview – Part 1
Eager vs Lazy Loading – Overview – Part 2
Eager vs Lazy Loading – Coding – Eager
Eager vs Lazy Loading – Coding – Lazy
Eager vs Lazy Loading – Coding – Closing the Session
Eager vs Lazy Loading – Coding – Resolve Lazy Loading Issue
Eager vs Lazy Loading – Coding – HQL JOIN FETCH
FAQ: How to load the courses at a later time in the application?

Hibernate Advanced Mappings – @OneToMany – Unidirectional

@OneToMany – Uni-Directional – Overview – Part 1
@OneToMany – Uni-Directional – Overview – Part 2
FAQ: @JoinColumn … where does it find the column?
@OneToMany – Uni-Directional – Set up database tables
@OneToMany – Uni-Directional – Create Review Class
@OneToMany – Uni-Directional – Configure Fetch Type
@OneToMany – Uni-Directional – Create Course Reviews
@OneToMany – Uni-Directional – Get Course Reviews
@OneToMany – Uni-Directional – Delete Course Reviews

Hibernate Advanced Mappings – @ManyToMany

@ManyToMany – Overview – Part 1
@ManyToMany – Overview – Part 2
@ManyToMany – Set up database tables
@ManyToMany – Update Course class
@ManyToMany – Configure Course for many-to-many
@ManyToMany – Configure Student for many-to-many
@ManyToMany – Create a Main App
@ManyToMany – Review app output
@ManyToMany – Add more courses for a student
@ManyToMany – Verify Data in Join Table
@ManyToMany – Get Courses for Student
@ManyToMany – Delete a Course
@ManyToMany – Delete a Student

Build a Database Web App – Spring MVC and Hibernate Project – Part 1

Project Overview and Demo
Source Files for Spring MVC + Hibernate Web App
Set up Sample Data for Database
Test Database Connection – Part 1
Test Database Connection – Part 2
Set Up Dev Environment – Part 1
HEADS UP – FOR JAVA 9 and higher USERS – Spring MVC CRUD
Set Up Dev Environment – Part 2
Set Up Dev Environment – Part 3
Test Spring MVC Controller – Part 1
Test Spring MVC Controller – Part 2

Build a Database Web App – Spring MVC and Hibernate Project – Part 2

List Customers – Overview
List Customers – Overview of Development Process
List Customers – Creating Hibernate Entity – Part 1
List Customers – Creating Hibernate Entity – Part 2
List Customers – Developing Hibernate DAO – Overview – Part 1
List Customers – Developing Hibernate DAO – Overview – Part 2
List Customers – Developing Hibernate DAO – Write Some Code – Part 1
List Customers – Developing Hibernate DAO – Write Some Code – Part 2
List Customers – Injecting DAO into Controller
List Customers – Developing JSP View Page
Making it Pretty with CSS – Overview
Making it Pretty with CSS – Write Some Code – Part 1
Making it Pretty with CSS – Write Some Code – Part 2
Adding a Welcome File

Build a Database Web App – Spring MVC and Hibernate Project – Part 3

Refactor: @GetMapping and @PostMapping – Overview
Refactor: @GetMapping and @PostMapping – Write Some Code
Refactor: Add a Service Layer – Overview
Refactor: Add a Service Layer – Write Some Code – Part 1
Refactor: Add a Service Layer – Write Some Code – Part 2

Build a Database Web App – Spring MVC and Hibernate Project – Part 4

Add Customer – Overview
Add Customer – Setting up the Add Button – Part 1
Add Customer – Setting up the Add Button – Part 2
Add Customer – Creating the HTML Form – Part 1
Add Customer – Creating the HTML Form – Part 2
Add Customer – Creating the HTML Form – Part 3
Add Customer – Save to Database – Part 1
Add Customer – Save to Database – Part 2
Sort Customer Data

Build a Database Web App – Spring MVC and Hibernate Project – Part 5

Update Customer – Overview
Update Customer – Creating Update Link
Update Customer – Prepopulating the Form – Part 1
Update Customer – Prepopulating the Form – Part 2
Update Customer – Prepopulating the Form – Part 3
Update Customer – Save Customer to Database – Part 1
Update Customer – Save Customer to Database – Part 2

Build a Database Web App – Spring MVC and Hibernate Project – Part 6

Delete Customer – Overview
Delete Customer – Creating Delete Link – Part 1
Delete Customer – Creating Delete Link – Part 2
Delete Customer – Delete from Database – Part 1
Delete Customer – Delete from Database – Part 2
Delete Customer – Delete from Database – Part 3
FAQ: How to Add Search support
FAQ: How to use customer-tracker project with All Java Configuration and Maven

AOP: Aspect-Oriented Programming Overview

AOP – The Business Problem
AOP Solution and AOP Use Cases
Comparing Spring AOP and AspectJ

AOP: @Before Advice Type

AOP: @Before Advice Overview
AOP: AOP Project Setup
AOP: @Before Advice – Write Some Code
AOP: @Before Advice – Add and Test AOP Aspect

AOP: Pointcut Expressions – Match Methods and Return Types

AOP – Pointcut Expressions Overview
AOP – Pointcut Expressions – Match any addAccount Method – Part 2
AOP – Pointcut Expressions – Match only DAO addAccount – Match any add* Method
AOP – Pointcut Expressions – Match any Return Type

AOP: Pointcut Expressions – Match Method Parameter Types

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

AOP: Pointcut Declarations

AOP: Pointcut Declarations – Overview
AOP: Pointcut Declarations – Write Some Code
AOP: Combining Pointcuts – Overview
AOP: Combining Pointcuts – Write Some Code – Part 1
AOP: Combining Pointcuts – Write Some Code – Part 2

AOP: Ordering Aspects

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

AOP: JoinPoints

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

AOP: @AfterReturning Advice Type

AOP: @AfterReturning Overview
AOP: @AfterReturning – Write Some Code – Part 1
AOP: @AfterReturning – Write Some Code – Part 2
AOP: @AfterReturning – Write Some Code – Part 3
AOP: @AfterReturning – Modifying Data – Write Some Code

AOP: @AfterThrowing Advice Type

AOP: @AfterThrowing
AOP: @AfterThrowing – Write Some Code

AOP: @After Advice Type

AOP: @After Overview
AOP: @After – Write Some Code

AOP: @Around Advice Type

AOP: @Around Advice Overview
AOP: @Around – Write Some Code – Part 1
AOP: @Around – Write Some Code – Part 2
AOP: @Around Advice – Resolve Order Issue
AOP: @Around Advice – Handling Exceptions – Overview
AOP: @Around Advice – Handling Exceptions – Write Some Code
AOP: @Around Advice – Rethrowing Exceptions

AOP: Add AOP Logging to Spring MVC App – Real-Time Project

AOP: AOP and Spring MVC App – Overview
AOP: AOP and Spring MVC App – Write Some Code – Create Aspect
AOP: AOP and Spring MVC App – Write Some Code – Add @Before Advice
AOP: AOP and Spring MVC App – Write Some Code – Add @AfterReturning Advice

Maven Crash Course

Maven Overview – Part 1
Maven Overview – Part 2
Maven Key Concepts – POM file and Coordinates
Maven – How to Find Dependencies
Maven Archetypes
Maven – Creating a Simple Project – Part 1
How to Install the m2eclipse Plugin
Maven – Creating a Simple Project – Part 2
Maven – Creating a Web App Project
Maven – Repositories Overview
Maven – Local Repository
Maven – Central Repository (remote)
Maven – Additional Repositories Overview
Maven – Additional Repositories Demo
Maven – Private Repositories

Spring Security – Getting Started

Spring Security – Overview
Spring Security – Demo
Spring Security – All Java Configuration – Part 1
Spring Security – All Java Configuration – Part 2
Spring Security – Project Downloads and Setup
Spring Security – Maven Configuration
FAQ: Maven can’t find a class but I have it in pom.xml
Spring Security – Create Spring Java Config class
Spring Security – Create Spring Initializer class
Spring Security – Create Controller and View
Spring Security – Run the App
Spring Security – Add Spring Security Maven Dependencies
Spring Security – Latest Version
Spring Security – Add Spring Security Maven Dependencies – Demo
Spring Security – Basic Security (Users, Passwords and Roles)
Spring Security – Create Security Initializer
HEADS UP – New Spring Security 5.0.2 – Deprecated method
Spring Security – Create Security Config

Spring Security – Adding Custom Login Form

Spring Security – Rename Context Roots
Spring Security – Dev and Testing with New Private Window
Spring Security – Custom Login Form Overview – Part 1
Spring Security – Custom Login Form Overview – Part 2
Spring Security – Spring Config for Custom Login Form
Spring Security – Create Request Mapping for Login Form
Spring Security – Building Custom Login Form
Spring Security – Testing Custom Login Form
Spring Security – Adding Login Error Message – Overview
Spring Security – Adding Login Error Message – Coding

Spring Security – Boostrap CSS Login Form

Spring Security – Bootstrap CSS Login Form
Spring Security – Bootstrap CSS Login Form – Adding Form
Spring Security – Bootstrap CSS Login Form – Customizing Form
Spring Security – Bootstrap CSS Login Form – Testing

Spring Security – Adding Logout Support

Spring Security – Logout Overview
Spring Security – Logout Configuration
Spring Security – Customizing Logout Message

Spring Security – Cross Site Request Forgery (CSRF)

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

Spring Security – User Roles

Spring Security – Displaying User ID and Roles – Overview
Spring Security – Displaying User ID and Roles – Write Some Code
Spring Security – Displaying User ID and Roles – Test the App
FAQ: How to Add a Public Landing Page

Spring Security – Restrict Access Based on Role

Spring Security – Restrict Access – Overview
Spring Security – Restrict Access – Update Home Page
Spring Security – Restrict Access – Create Controller and Views
Spring Security – Restrict Access – Security Configuration
Spring Security – Restrict Access – Test Admin Access
Spring Security – Create a Custom “Access Denied” Page – Overview
Spring Security – Create a Custom “Access Denied” Page – Configuration
Spring Security – Create a Custom “Access Denied” Page – Coding
Spring Security – Display Content based on Roles – Overview
Spring Security – Display Content based on Roles – Write Some Code
Spring Security – Display Content based on Roles – Testing

Spring Security – Add JDBC Database Authentication

Spring Security JDBC – Overview – Defining Database Schema
Spring Security JDBC – Overview – DataSource Configuration
Spring Security JDBC – Overview – Add JDBC Authentication
Spring Security JDBC – Coding – Run SQL Script
Spring Security JDBC – Coding – Update Maven POM File
Spring Security JDBC – Coding – Add JDBC Properties File
Spring Security JDBC – Coding – Define DataSource
Spring Security JDBC – Coding – Reading Props File
Spring Security JDBC – Coding – Configure Data Source
Spring Security JDBC – Coding – Add JDBC Authentication
Spring Security JDBC – Coding – Test the App

Spring Security – Password Encryption

Spring Security – Password Encryption – Bcrypt Overview
bcrypt Additional Resources
Spring Security – Password Encryption – Spring Configuration
Spring Security – Password Encryption – Setting up Database Schema
Spring Security – Password Encryption – Bcrypt Configuration
Spring Security – Password Encryption – Testing Passwords
Bonus Lecture: Spring Security – User Registration
Bonus Lecture: Adding Spring Security to CRM App

Spring REST – Overview

Spring REST – What are REST Web Services? – Part 1
Spring REST – What are REST Web Services? – Part 2

Spring REST – JSON Data Binding

Spring REST – JSON Overview
Spring REST – JSON Data Binding with Jackson – Overview 1
Spring REST – JSON Data Binding with Jackson – Overview 2
Spring REST – JSON Jackson Demo – Set Up Maven Project
Spring REST – JSON Jackson Demo – Processing JSON
Spring REST – JSON Jackson Demo – Nested Objects and Arrays
Spring REST – JSON Jackson Demo – Display Nested and Arrays
Spring REST – JSON Jackson Demo – Ignore Properties

Spring REST – Create a Spring REST Controller

Spring REST – HTTP Overview
Spring REST – Install a REST Client
Spring REST – Creating a Spring REST Controller – Overview 1
Spring REST – Creating a Spring REST Controller – Overview 2
Spring REST – REST Controller Demo – Set Up Maven Project
Spring REST – REST Controller Demo – Set Up All Java Configuration
Spring REST – REST Controller Demo – Creating the REST Controller
Spring REST – App Enhancement with Default Page

Spring REST – Retrieve POJOs as JSON

Spring REST – Retrieve POJOs as JSON – Overview
Spring REST – Retrieve POJOs as JSON – Create POJO
Spring REST – Retrieve POJOs as JSON – Create REST Controller
Spring REST – Retrieve POJOs as JSON – Test REST Controller

Spring REST – Using @PathVariable for REST Endpoints

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

Spring REST – Exception Handling

Spring REST – Exception Handling Overview – Part 1
Spring REST – Exception Handling Overview – Part 2
Spring REST – Exception Handling – Create Custom Error Response and Exception
Spring REST – Exception Handling – Update REST Service to throw Exception
Spring REST – Exception Handling – Add Exception Handler with @ExceptionHandler
Spring REST – Exception Handling – Test the App
Spring REST – Exception Handling – Adding Generic Exception Handler
Spring REST – Global Exception Handling Overview
Spring REST – Global Exception Handling with @ControllerAdvice

Spring REST – API Design Best Practices

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

Spring REST – CRUD Database Real-Time Project – Overview

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

Spring REST – CRUD Database Real-Time Project – Get Customers

Spring REST – CRUD Database Real-Time Project – Get Customers Overview
Spring REST – CRUD Database Real-Time Project – Create REST Controller
Spring REST – CRUD Database Real-Time Project – Testing in Postman
Spring REST – CRUD Database Real-Time Project – Get Single Customer Overview
Spring REST – CRUD Database Real-Time Project – Get Single Customer – Testing

Spring REST – CRUD Database Real-Time Project – Exception Handling

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

Spring REST – CRUD Database Real-Time Project – Add Customer

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

Spring REST – CRUD Database Real-Time Project – Update Customer

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

Spring REST – CRUD Database Real-Time Project – Delete Customer

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

Spring REST – Bonus Lectures

Bonus Lecture: Creating a REST Client with Spring
Bonus Lecture: Securing REST API Endpoints

Spring Boot – Overview

Spring Boot – What is Spring Boot?
Spring Boot – Creating a Project with Spring Boot Initializr
Spring Boot – Developing a REST API Controller with Spring Boot
Spring Boot – Exploring the Spring Boot Project Structure – Part 1
Spring Boot – Exploring the Spring Boot Project Structure – Part 2
Spring Boot – Spring Boot Starters – A Curated List of Dependencies
Spring Boot – Parents for Spring Boot Starters

Spring Boot – Spring Boot Dev Tools and Spring Boot Actuator

Spring Boot – Dev Tools
Spring Boot – Spring Boot Actuator – Overview
Spring Boot – Spring Boot Actuator – Accessing Actuator Endpoints
Spring Boot – Spring Boot Actuator – Applying Security to Actuator Endpoints

Spring Boot – Running Spring Boot Apps from the Command Line

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

Spring Boot – Application Properties

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

Spring Boot – Build a REST CRUD API with Hibernate – Real-Time Project

Spring Boot – REST CRUD Real-Time Project Overview and Database Set Up
Spring Boot – Create Project with Spring Initializr
Spring Boot – Integrating Hibernate and JPA
Spring Boot – Configuring the Spring Boot Data Source
Spring Boot – Developing the DAO Interface and Implementation
Spring Boot – Creating REST Controller Methods
Spring Boot – Additional CRUD Methods for DAO
Spring Boot – Refactoring the Code to use a Service Layer
Spring Boot – REST Controller Methods to Find and Add Employee
Spring Boot – REST Controller Methods to Update and Delete an Employee

Spring Boot – Build a REST CRUD API with JPA – Real-Time Project

Spring Boot – REST JPA Overview
Spring Boot – Creating JPA DAO Implementation for REST API
Spring Boot – Testing the REST API with JPA DAO Implementation

Spring Boot – Spring Data JPA – Real-Time Project

Spring Boot – Spring Data JPA Overview
Spring Boot – Creating Spring Data JPA Repository
Spring Boot – Testing the REST API with Spring Data JPA Repository

Spring Boot – Spring Data REST – Real-Time Project

Spring Boot – Spring Data REST Overview
Spring Boot – Spring Data REST – Creating a REST API
Spring Boot – Spring Data REST – Configuration, Pagination and Sorting

Spring Boot – Thymeleaf

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

Spring Boot – Thymeleaf – Build HTML Tables

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

Spring Boot – Thymeleaf – CRUD Database Real-Time Project

Spring Boot – Thymeleaf – CRUD Database Project – Get Employees – Part 1
Spring Boot – Thymeleaf – CRUD Database Project – Get Employees – Part 2
Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Add Employee – Part 1
Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Add Employee – Part 2
Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Add Employee – Part 3
Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Update Employee – 1
Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Update Employee – 2
Spring Boot – Thymeleaf – CRUD Database Real-Time Project: Delete Employee

Spring Boot – Thymeleaf – Security Bonus

Bonus Lecture – Security – Login/Logout with Spring Boot and Thymeleaf
Bonus Lecture – Security – User Registration with Spring Boot and Thymeleaf

Summary

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

Appendix

FAQ: Spring Student Questions

Bonus: Spring Boot Deployments on Tomcat

Deploying Spring Boot WAR file with JSP to Tomcat
Deploy Spring Boot WAR file with Thymeleaf to Tomcat