Master Spring 6 Spring Boot 3 REST JPA Hibernate
36h 15m 18s
English
Free
Course description
'Master Spring framework, Spring Boot, REST, JPA, Hibernate' course will help in understanding about Spring framework and how to build web applications, Rest Services using Spring, Spring MVC, SpringBoot, Thymeleaf, Spring JDBC, Spring Data JPA etc. By the end of this course, students will understand all the below topics:
Read more about the course
- What is Spring framework ?
- Spring Vs Java EE
- Evolution of Spring and release timeline of Spring
- Different projects inside Spring
- Spring Core Concepts like Inversion of Control (IoC), Dependency Injection (DI) & Aspect-Oriented Programming (AOP)
- Different approaches of Beans creation inside Spring framework
- Bean Scopes inside Spring framework
- Autowiring of the Spring Beans
- Introduction to MVC pattern & overview of web apps
- Spring MVC internal architecture & how to create web applications using Spring MVC & Thymeleaf
- Spring MVC Validations
- How to build dynamic web apps using Thymeleaf & Spring
- Thymeleaf integration with Spring, Spring MVC, Spring Security
- Deep dive on Spring Boot, Auto-configuration
- Spring Boot Dev Tools
- Spring Boot H2 Database
- Securing web applications using Spring Security
- Authentication , Authorization, Role based access
- Cross-Site Request Forgery (CSRF) & Cross-Origin Resource Sharing (CORS)
- Database create, read, update, delete operations using Spring JDBC
- Introduction to ORM frameworks & database create, read, update, delete operations using Spring Data JPA/Hibernate
- Derived Query methods in JPA
- OneToOne, OneToMany, ManyToOne, ManyToMany mappings inside JPA/Hibernate
- Sorting, Pagination, JPQL inside Spring Data JPA
- Building Rest Services inside Spring
- Consuming Rest Services using OpenFeign, Web Client, RestTemplate
- Spring Data Rest & HAL Explorer
- Logging inside Spring applications
- Properties Configuration inside Spring applications
- Profiles inside Spring Boot applications
- Conditional Bean creation using Profiles
- Monitoring Spring Boot applications using SpringBoot Actuator & Spring Boot Admin
The pre-requisite for the course is knowledge of Java, basic exposure on HTML, CSS & interest to learn.
Watch Online
0:00 0:00
| # | Lesson Title | Duration |
|---|---|---|
| 1 | Introduction to the course & Agenda of the course | 14:36 |
| 2 | Details of Source Code, PDF Content & other instructions for the course | 10:10 |
| 3 | What is Spring ? | 08:16 |
| 4 | Jakarta EE Vs Spring | 12:06 |
| 5 | Introduction to Spring Core | 02:23 |
| 6 | Introduction to Inversion of Control (IoC) & Dependency Injection (DI) | 03:52 |
| 7 | Demo of Inversion of Control (IoC) & Dependency Injection (DI) | 11:15 |
| 8 | Advantages of Inversion of Control & Dependency Injection | 07:03 |
| 9 | Introductions to Beans, Context and SpEL | 06:09 |
| 10 | Introduction to Spring IoC Container | 06:42 |
| 11 | Installation of Maven | 09:06 |
| 12 | Creating Maven Project | 17:05 |
| 13 | Creating Beans using @Bean annotation | 15:50 |
| 14 | Understanding NoUniqueBeanDefinitionException in Spring | 08:09 |
| 15 | Providing a custom name to the bean | 04:41 |
| 16 | Understanding @Primary Annotation inside Spring | 05:57 |
| 17 | Creating Beans using @Component annotation | 08:34 |
| 18 | Stereotype Annotations in Spring | 05:56 |
| 19 | Comparison between @Bean Vs @Component | 05:35 |
| 20 | Understanding @PostConstruct Annotation | 06:05 |
| 21 | Understanding @PreDestroy Annotation | 05:04 |
| 22 | Creating Beans programmatically using registerBean() | 10:04 |
| 23 | Creating Beans using XML Configurations | 07:33 |
| 24 | Why should we use frameworks | 11:46 |
| 25 | Introduction to Spring Projects - Part 1 | 09:16 |
| 26 | Introduction to Spring Projects - Part 2 | 06:17 |
| 27 | Introduction to wiring & auto-wiring inside Spring | 07:54 |
| 28 | Wiring Beans using method call | 09:53 |
| 29 | Wiring Beans using method parameters | 03:37 |
| 30 | Wiring Beans using @Autowired on class fields | 09:06 |
| 31 | Wiring Beans using @Autowired on setter method | 04:49 |
| 32 | Wiring Beans using @Autowired on constructor | 05:43 |
| 33 | Deep dive of Autowiring inside Spring - Theory | 07:34 |
| 34 | Deep dive of Autowiring inside Spring - Coding example | 05:57 |
| 35 | Understanding and Avoiding Circular dependencies | 04:55 |
| 36 | Problem Statement for Assignment related to Beans, Autowiring and DI | 04:43 |
| 37 | Solution for Assignment related to Beans, Autowiring and DI | 15:34 |
| 38 | Introduction to Bean Scopes inside Spring | 03:24 |
| 39 | Deepdive on Singleton Bean scope | 07:03 |
| 40 | What is a Race Condition | 03:38 |
| 41 | Usecases of Singleton Bean scope | 04:46 |
| 42 | Deepdive of Eager and Lazy instantiation of Singleton scope | 05:57 |
| 43 | Demo of Eager and Lazy instantiation of Singleton bean | 04:29 |
| 44 | Eager Initialization Vs Lazy Initialization | 03:57 |
| 45 | Deepdive of Prototype Bean scope | 05:43 |
| 46 | Singleton Beans Vs Prototype Beans | 04:11 |
| 47 | Introduction to Aspect Oriented Programming (AOP) | 05:45 |
| 48 | Understanding the problems inside web applications with out AOP | 07:13 |
| 49 | Understanding & Running the Application with out AOP | 07:13 |
| 50 | AOP Jargons | 05:16 |
| 51 | Weaving inside AOP | 03:14 |
| 52 | Type of Advices inside AOP | 04:15 |
| 53 | Configuring Advices inside AOP - Theory | 11:33 |
| 54 | Configuring @Around advice | 10:56 |
| 55 | Configuring @Before advice | 07:30 |
| 56 | Configuring @AfterThrowing and @AfterReturning advices | 07:24 |
| 57 | Configuring Advices inside AOP with Annotations approach | 03:15 |
| 58 | Demo of Configuring Advices inside AOP with Annotations approach | 05:43 |
| 59 | Quick Introduction about Web Applications | 07:38 |
| 60 | Role of Servlets inside Web Applications | 06:46 |
| 61 | Evolution of Web Apps inside Java ecosystem | 04:16 |
| 62 | Types of Web Apps we can build with Spring | 06:35 |
| 63 | Introduction to Spring Boot - The Hero of Spring framework | 10:42 |
| 64 | Spring Boot Important features | 11:03 |
| 65 | Creating simple web application using Spring Boot | 14:24 |
| 66 | Running simple web application using Spring Boot | 13:57 |
| 67 | Changing the default server port & context path of SpringBoot Web application | 05:31 |
| 68 | Random server port number inside SpringBoot | 04:09 |
| 69 | Demo of SpringBoot Autoconfiguration | 11:42 |
| 70 | Quick recap | 05:08 |
| 71 | Quick Tip - Mapping multiple paths inside Spring Web Application | 13:12 |
| 72 | Introduction to Thymeleaf | 08:39 |
| 73 | Building dynamic content using Thymeleaf | 09:59 |
| 74 | Disabling Thymeleaf template caching | 07:04 |
| 75 | Introduction to Spring Boot DevTools | 07:38 |
| 76 | Implemetation & Demo of Spring Boot DevTools | 07:39 |
| 77 | Building Home Page of EazySchool Web Application | 07:24 |
| 78 | Understanding the Home Page source code of EazySchool | 05:56 |
| 79 | Deep Dive of Spring MVC Internal architecture | 12:28 |
| 80 | Separation of Header and Footer code using Thymeleaf replace tag | 08:15 |
| 81 | Building Courses Web Page of Eazy School Web Application | 12:08 |
| 82 | Quick Tip - Resolving Build & Cache issues inside maven projects | 02:13 |
| 83 | Building About Page of Eazy School Web Application | 06:48 |
| 84 | Building Contact Page of Eazy School Web Application | 05:26 |
| 85 | Submit information from Contact page using @RequestParam | 10:54 |
| 86 | Submit information from Contact page using POJO object | 08:31 |
| 87 | Define actions for all the links in the Home & Footer page | 06:19 |
| 88 | Building Holidays Page of Eazy School Web Application | 12:36 |
| 89 | Introduction to Lombok library | 07:00 |
| 90 | Implementing Lombok inside Eazy School Web App | 06:39 |
| 91 | Demo of @Slf4j annotation from Lombok library | 03:57 |
| 92 | Accepting Query Params using @RequestParam annotation - Theory | 08:47 |
| 93 | Accepting Query Params using @RequestParam annotation - Coding | 12:05 |
| 94 | Accepting Path Params using @PathVariable annotation - Theory | 05:23 |
| 95 | Accepting Path Params using @PathVariable annotation - Coding | 07:19 |
| 96 | Importance of Validations inside Web Applications | 12:00 |
| 97 | Introduction to Java Bean Validations | 10:10 |
| 98 | Adding Bean Validation annotations inside Contact POJO class | 10:14 |
| 99 | Adding Bean Validation related changes inside EazySchool Web Application | 12:17 |
| 100 | Demo of Bean Validations inside Contact form Page | 06:49 |
| 101 | Introduction to Spring Web Scopes | 07:02 |
| 102 | Use Cases of Spring Web Scopes | 09:27 |
| 103 | Demo of @RequestScope inside Eazy School Web Application | 06:32 |
| 104 | Demo of @SessionScope inside Eazy School Web Application | 06:29 |
| 105 | Demo of @ApplicationScope inside Eazy School Web Application | 05:48 |
| 106 | Introduction to Spring Security | 07:17 |
| 107 | Deepdive of Authentication Vs Authorization | 05:48 |
| 108 | Demo of Spring Security inside Eazy School Web App with default behavior | 06:28 |
| 109 | Configure custom credentials inside Spring Security | 04:29 |
| 110 | Understanding default security configurations inside Spring Security framework | 05:55 |
| 111 | Configure permitAll() inside Web App using Spring Security | 07:15 |
| 112 | Configure denyAll() inside Web App using Spring Security | 05:48 |
| 113 | Configure custom security configurations using Spring Security | 10:58 |
| 114 | Demo of CSRF protection & CSRF Disable inside Spring Security framework | 09:34 |
| 115 | Configure multiple users using inMemoryAuthentication() of Spring Security | 09:27 |
| 116 | Implement Login & Logout inside Web App - Part 1 | 07:11 |
| 117 | Implement Login & Logout inside Web App - Part 2 | 09:51 |
| 118 | Implement Login & Logout inside Web App - Part 3 | 05:16 |
| 119 | Demo of integration between ThymeLeaf & Spring Security | 10:37 |
| 120 | Introduction to @ControllerAdvice & @ExceptionHandler annotations | 09:00 |
| 121 | Demo of @ControllerAdvice & @ExceptionHandler annotations | 10:43 |
| 122 | Deep dive of CSRF attack | 12:14 |
| 123 | Solution for CSRF attack - Theory | 10:22 |
| 124 | Solution for CSRF attack - Coding | 11:26 |
| 125 | Introduction to in-memory H2 Database of Spring Boot | 08:38 |
| 126 | Setup H2 Database inside a Spring Boot web application | 16:37 |
| 127 | Introduction to JDBC & problems with it | 09:42 |
| 128 | Introduction to Spring JDBC | 10:40 |
| 129 | Deep dive on usage of JdbcTemplate | 08:01 |
| 130 | Saving Contact Message into DB using JdbcTemplate Insert operation | 14:26 |
| 131 | Display Contact messages from DB using JdbcTemplate select operation - Part 1 | 06:52 |
| 132 | Display Contact messages from DB using JdbcTemplate select operation - Part 2 | 15:41 |
| 133 | Update Contact messages status using JdbcTemplate update operation | 09:41 |
| 134 | Implementing AOP inside Eazy School Web Application | 08:23 |
| 135 | Display list of Holidays from H2 Database using JdbcTemplate | 16:29 |
| 136 | Setup MYSQL DB inside AWS - Part 1 | 08:28 |
| 137 | Setup MYSQL DB inside AWS - Part 2 | 09:41 |
| 138 | Migrate from H2 Database to MYSQL Database | 09:09 |
| 139 | Demo of MYSQL Database changes inside Eazy School Web App | 09:39 |
| 140 | Problems with Spring JDBC & how ORM frameworks solve these problems | 06:08 |
| 141 | Introduction to Spring Data | 06:46 |
| 142 | Deepdive on Repository,CrudRepository,PagingAndSortingRepository,JpaRepository | 16:50 |
| 143 | Introduction to Spring Data JPA | 12:26 |
| 144 | Migrate from Spring JDBC to Spring Data JPA - Part 1 | 11:07 |
| 145 | Migrate from Spring JDBC to Spring Data JPA - Part 2 | 13:12 |
| 146 | Migrate from Spring JDBC to Spring Data JPA - Part 3 | 08:28 |
| 147 | Migrate from Spring JDBC to Spring Data JPA - Part 4 | 09:50 |
| 148 | Deep dive on derived query methods inside Spring Data JPA | 09:20 |
| 149 | Introduction of Auditing Support by Spring Data JPA | 12:50 |
| 150 | Implement automatic auditing support with Spring Data JPA - Part 1 | 09:44 |
| 151 | Implement automatic auditing support with Spring Data JPA - Part 2 | 07:41 |
| 152 | Building new user registration web page inside Eazy School Web App | 13:41 |
| 153 | Building Custom validations for new user registration page - Part 1 | 08:34 |
| 154 | Building Custom validations for new user registration page - Part 2 | 13:55 |
| 155 | Building Custom validations for new user registration page - Part 3 | 07:48 |
| 156 | Building Custom validations for new user registration page - Part 4 | 16:13 |
| 157 | Creating new tables required for new user registration process | 10:37 |
| 158 | Spring Data JPA configurations for Person, Address, Roles tables and entities | 08:13 |
| 159 | Introduction to One to One Relationship inside ORM frameworks | 06:50 |
| 160 | Making One to One Relationship configurations inside entity classes - Theory | 08:01 |
| 161 | Deep dive on Fetch Types and Cascade Types in ORM frameworks | 10:04 |
| 162 | Making One to One Relationship configurations inside entity classes - Coding | 17:23 |
| 163 | Understanding Spring Security configurations for custom authentication logic | 09:03 |
| 164 | Implement Spring Security changes for custom authentication logic - Part 1 | 14:02 |
| 165 | Implement Spring Security changes for custom authentication logic - Part 2 | 07:05 |
| 166 | Problems with Authentication logic using plain text passwords | 03:27 |
| 167 | Deep dive on Encoding, Encryption and Hashing for password management | 12:00 |
| 168 | Deep dive on PasswordEncoder & BCryptPasswordEncoder | 08:37 |
| 169 | Implementing password hashing with BCryptPaswordEncoder - Part 1 | 14:17 |
| 170 | Implementing password hashing with BCryptPaswordEncoder - Part 2 | 05:54 |
| 171 | Quick Tip - To Disable the javax validations in Spring Data JPA | 05:54 |
| 172 | Displaying Profile link inside Dashboard web page | 06:04 |
| 173 | Displaying Profile Web Page on click of profile link in Dashboard | 12:29 |
| 174 | Fetch data from DB and display on the Profile web page | 14:44 |
| 175 | Save Address Data into DB from Profile Page | 09:24 |
| 176 | Introduction to new enhancements related to OnetoMany, ManytoOne & ManytoMany | 02:19 |
| 177 | Displaying Classes, Courses link inside Dashboard web page | 07:57 |
| 178 | Introduction to OneToMany & ManyToOne mappings | 10:40 |
| 179 | Implement OneToMany & ManyToOne configurations inside Entity classes | 09:07 |
| 180 | Displaying new Web Page on click of classes link in Dashboard | 07:03 |
| 181 | Add & Delete Classes enhancement inside Eazy School Web App | 13:22 |
| 182 | Display, Add & Delete Students enhancement inside Eazy School Web App - Part 1 | 14:17 |
| 183 | Display, Add & Delete Students enhancement inside Eazy School Web App - Part 2 | 08:48 |
| 184 | Introduction to ManyToMany relationship in ORM frameworks | 12:54 |
| 185 | Implement ManyToMany configurations inside Entity classes | 11:01 |
| 186 | Display & Add Courses enhancement inside Eazy School Web App - Part 1 | 08:36 |
| 187 | Display & Add Courses enhancement inside Eazy School Web App - Part 2 | 10:46 |
| 188 | Display & Add Students enhancement inside Course Web Page | 11:21 |
| 189 | Delete Student enhancement inside Course Web Page | 06:03 |
| 190 | Implement Student Dashboard related enhancements inside Eazy School Web App | 14:43 |
| 191 | Introduction to Sorting inside Spring Data JPA | 06:57 |
| 192 | Implement & Demo of Static Sorting | 06:07 |
| 193 | Implement & Demo of Dynamic Sorting | 05:12 |
| 194 | Introduction to Pagination inside Spring Data JPA | 09:33 |
| 195 | Implement & Demo of Pagination & Dynamic Sorting - Part 1 | 21:03 |
| 196 | Implement & Demo of Pagination & Dynamic Sorting - Part 2 | 12:21 |
| 197 | Introduction to custom queries using @Query,@NamedQuery,@NamedNativeQuery & JPQL | 13:56 |
| 198 | Writing Custom Queries using @Query Annotation | 08:30 |
| 199 | Writing Custom Update Queries using @Query,@Modifying,@Transactional Annotations | 12:11 |
| 200 | Deep dive on @NamedQuery,@NamedNativeQuery inside Spring Data JPA | 05:46 |
| 201 | Writing Custom Queries using @NamedQuery,@NamedNativeQuery Annotations | 15:17 |
| 202 | Introduction to REST Services | 06:54 |
| 203 | Build REST services using Spring MVC style & @ResponseBody annotation - Theory | 05:42 |
| 204 | Implement REST service using Spring MVC style & @ResponseBody - Part 1 | 08:41 |
| 205 | Implement REST service using Spring MVC style & @ResponseBody - Part 2 | 08:27 |
| 206 | Deep dive & Demo of @RequestBody annotation | 10:03 |
| 207 | Implement REST Services using @RestController annotation | 03:43 |
| 208 | Demo of save operation using Rest Service & ResponseEntity | 13:47 |
| 209 | Demo of delete operation using Rest Service & RequestEntity | 06:19 |
| 210 | Demo of update operation using Rest Service & recap of all Rest annotations | 08:17 |
| 211 | Implement global error logic for Rest Services using @RestControllerAdvice | 06:51 |
| 212 | Deep dive on CROSS-ORIGIN RESOURCE SHARING (CORS) & @CrossOrigin annotation | 07:09 |
| 213 | Sending Response in XML format in Rest Services | 05:03 |
| 214 | Demo of Content filter inside Rest Services using @JsonIgnore annotation | 04:53 |
| 215 | Introduction to Consuming Rest Services inside Web Applications | 09:55 |
| 216 | Consuming Rest Services using OpenFeign - Theory | 10:01 |
| 217 | Consuming Rest Services using OpenFeign - Coding | 11:37 |
| 218 | Consuming Rest Services using RestTemplate | 14:33 |
| 219 | Consuming Rest Services using WebClient | 15:13 |
| 220 | Introduction to Spring Data Rest & HAL Explorer | 07:09 |
| 221 | Deep dive of Spring Data Rest & exploring Rest APIs - Part 1 | 10:49 |
| 222 | Deep dive of Spring Data Rest & exploring Rest APIs - Part 2 | 12:20 |
| 223 | Exploring Rest APIs of Spring Data Rest using HAL Explorer | 08:58 |
| 224 | Securing Spring Data Rest APIs & HAL Explorer | 03:43 |
| 225 | Quick Tips around Spring Data Rest | 06:43 |
| 226 | Introduction to Logging inside SpringBoot | 09:56 |
| 227 | Logging configurations for SpringBoot framework code | 07:35 |
| 228 | Logging configurations for Application code | 09:04 |
| 229 | Store log statements into a custom file and folder | 12:01 |
| 230 | Introduction to Externalized properties inside SpringBoot Web Applications | 06:39 |
| 231 | Reading properties using @Value annotation | 07:18 |
| 232 | Reading properties using Environment interface | 04:52 |
| 233 | Reading properties using @ConfigurationProperties - Theory | 10:40 |
| 234 | Reading properties using @ConfigurationProperties - Coding | 10:34 |
| 235 | Introduction to Profiles in Spring | 04:31 |
| 236 | Implementation & Demo of Profiles inside Eazy School Web App | 08:34 |
| 237 | Various approaches to activate Profiles inside Spring | 14:07 |
| 238 | Creating beans conditionally based on active profile | 06:27 |
| 239 | Introduction to Spring Boot Actuator | 03:56 |
| 240 | Implement and Secure Actuator inside Eazy School Web App | 06:39 |
| 241 | Deepdive of Actuator endpoints | 17:20 |
| 242 | Exploring Actuator data using Spring Boot Admin | 15:13 |
| 243 | Introduction to Cloud Deployment, AWS EC2 & AWS Elastic Beanstalk | 09:31 |
| 244 | Packaging Spring Boot application for AWS Deployment | 07:04 |
| 245 | Deploying Spring Boot app into AWS Elastic Beanstalk | 11:27 |
| 246 | Switching DB inside AWS Elastic Beanstalk | 08:27 |
| 247 | Deleting AWS Beanstalk & DB resources | 03:06 |
| 248 | Thank You & Congratulations | 02:32 |
Comments
0 commentsWant to join the conversation?
Sign in to commentSimilar courses
Data Structures & Algorithms: Part 1
Sources: codewithmosh (Mosh Hamedani)
Studied Computer Science - but never really understood the complex topic of data structures and algorithms? Or maybe you’re a self-taught programmer, with little to no knowledge...
4 hours 39 minutes 17 seconds
Java Streams API
Sources: Amigoscode (Nelson Djalo)
Functional programming is becoming very popular and it focuses around pure functions. Functional applications avoid the shared state, and tend to be more concis
2 hours 33 minutes 12 seconds
Java Spring Tutorial Masterclass - Learn Spring Framework 5
Sources: udemy
There is no doubt that having Spring Framework skills on your résumé will make you a more employable Java developer. Spring developers are in high demand and are paid handsomely...
45 hours 18 minutes 33 seconds
Java Generics
Sources: Amigoscode (Nelson Djalo)
As a Java software engineer is important to know how to write generic algorithms to write clean and re usable api's. Java Generics has been introduce remove unn
1 hour 8 minutes 39 seconds
Spring Boot Master Class
Sources: Amigoscode (Nelson Djalo)
Learn how to get started with Spring Boot, a powerful framework to build web applications quickly, using less code. The Java-based programs you build in Spring
9 hours 28 minutes 30 seconds