Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Mastering Spring Boot in depth: A Comprehensive Guide
Spring Core
What is spring framework (0:50)
Core features of spring framework (2:05)
What is a spring bean (0:41)
Lifecycle of a spring bean (0:49)
Bean configuration (1:58)
Spring component sample (1:19)
Spring components (0:43)
Bean naming (1:17)
Dependency injection (1:16)
Bean constructor injection (0:59)
Bean injection using @Qualifier (1:35)
Bean injection using @Primary (1:10)
Bean field injection (0:44)
Bean method injection (0:51)
Bean setter method injection (0:43)
Official recommendation (0:46)
Spring bean scopes (3:32)
Special spring beans - environement (1:38)
Special spring beans - profiles (2:42)
Reading properties using @value (2:13)
Best practices (1:19)
Spring Boot
Spring initialzr (1:50)
Spring boot introduction (1:37)
Spring Boot in Action
Create a new spring boot project (5:25)
Open the new spring boot project (1:02)
Enable the new intellij UI theme (1:17)
Setup SDK (1:33)
Project structure in depth (7:11)
Run and customize applicaiton banner (4:07)
Spring beans in action
Create the first java class (0:39)
Spring bean creation using @Bean (4:38)
Spring bean creation using @Component,@Service,@Repository (3:33)
Externalize the configuration (1:30)
Spring beans naming (2:31)
Extend MyFirstClass bean (1:33)
Dependency injection
Create the first spring service (1:45)
Constructor injection (4:50)
Bean injection using @Qualifier (3:26)
Bean injection using @Primary (1:44)
Bean injection using field injection (2:47)
Bean injection using method injection (1:54)
Bean injection using setter method injection (1:17)
Spring special beans
Environment bean - read system properties (2:13)
Environment bean - read application properties (1:32)
Cleanup the code before moving forward (0:59)
Inject properties using @value from multiple files (4:52)
Inject properties using @value (3:31)
Spring profiles
Spring profiles - definition and use cases (1:58)
Spring profiles - application properties (3:00)
Spring profiles - set active profile in application properties (3:52)
Spring profiles - set active profile programmatically (1:47)
Spring profiles - bean registration with @Profile (4:26)
Spring REST
REST overview (3:52)
Spring REST - resource design (2:52)
Spring REST - HTTP methods (1:49)
Spring REST - response status codes (0:59)
Spring REST - response status codes - 2xx (1:55)
Spring REST - response status codes - 3xx (1:53)
Spring REST - response status codes - 4xx (2:00)
Spring REST - response status codes - 5xx (1:28)
Spring REST - example (2:29)
Spring REST in action
Cleanup the code (1:35)
Create the first controller (0:42)
Create the first endpoint (6:05)
Ceate the first post endpoint (3:04)
Postman overview (10:45)
Perform the first post request (2:11)
Understand the @RequestBody (4:16)
Create the order POJO (1:07)
Pass a complex java Object (order class) as a request body (3:54)
The importance of accessors (Getters & Setter) for the serialization process (3:15)
Properties names mapping with @JsonPropetry (4:05)
Create order record object (1:16)
Use order record as a request body (2:03)
How to choose between records and POJOS (2:07)
Passing a parameter as path variable (5:10)
Passing a parameter as request parameter (3:18)
@PathVariable vs @RequestParam (1:44)
Request dispatching (6:53)
Spring data JPA
Cleanup the code (0:49)
Install postgres on premis (1:49)
Install postgres on docker (1:26)
Database explorer with Intellij (ultimate version) (3:20)
Database explorer with DBeaver (1:33)
Add the required dependencies (2:33)
Configure the database connection properties (part 1) (5:29)
Add Postgresql drive dependency (0:53)
Configure the database connection properties (part 2) (2:03)
Create a new database (0:59)
Create the student java class (1:50)
What is an entity in spring data JPA (1:31)
Transform the student class to an entity (2:59)
Add the jpa properties (6:13)
@Table annotation (1:47)
@Column annotation (5:43)
@GeneratedValue annotation (5:56)
Create the student repository (1:54)
Persist data to the database (5:33)
Find student by id (2:30)
Select all students (2:29)
Filter students by name (create a custom query) (6:24)
Delete a student (2:33)
Create school entity (1:24)
Create student profile entity (1:07)
Class diagram (0:58)
@OneToOne relationship (4:47)
@OneToMany relationship (2:20)
@ManyToOne relationship (2:23)
How to check if your implementation is correct? (1:57)
Implement school controller (2:55)
Insert school and students (7:23)
DTO pattern
DTO pattern definition (5:01)
Create the student DTO (2:17)
Use the student DTO to persist (6:17)
Create student response DTO and expose it as response (3:12)
Create school DTO (0:36)
Use the school DTO to create new school (4:13)
Use the school DTO to expose the list of schools (2:47)
Service layer
Why we need a service layer? (3:12)
The best way to organize your code (4:08)
Lets organize the code (4:25)
Test the application after the refactoring (2:08)
Create the student mapper service (2:31)
Create the student service layer (3:52)
Exercice 1- migrate all the logic from the controller to the service and make the code works (0:30)
Exercice 1- solution (3:03)
Exercice 2 - return student response dto as a response instead of student entity (0:30)
Exercice 2 - solution (3:34)
Exercice 3- create the required services for the school (0:33)
Exercice 3- solution (3:52)
Data validation
Add the spring validation dependency (1:05)
The importance of data validation (2:15)
Add validation to the student DTO (3:40)
Validate the student DTO and test the changes (2:57)
Capture the validation exception and return a proper response to the client (5:52)
Customise the error message (2:04)
Exploring all the validation annotations (7:48)
Are we done with the implementation? (2:06)
Testing overview
Spring boot testing support (2:44)
The importance of testing (3:29)
Testing in action
Setup method (@BeforeEach) (3:42)
Understand and generate the first test class (6:20)
TearDown method (@AfterEach) (1:28)
BeforeAll (@beforeall) (2:10)
AfterAll (@afterAll) (1:24)
Implement the first test method (8:13)
Exercice 1 (0:36)
Exercice 1 - solution (2:45)
Code coverage and exception handling (7:02)
Test isolation with Mockito
What istest isolation? (2:29)
Create and initialize the StudentServiceTest class (4:32)
How to mock method calls with mockito (8:28)
Improve your code performance with the verify (4:18)
Exercice 1 - implement test for findAllStudent (0:23)
Exercice 1 - solution (3:50)
Exercice 2 - implement the test for findStudentById (0:12)
Exercice 2 - solution (3:21)
Exercice 3 - implement findStudentByName (0:28)
Exercice 3 - solution (2:49)
Externalize the configuration
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock