Course Overview
Expertise in the Spring framework is highly sought after and will help open up a lot of job opportunities for you. Here you will get familiar with Spring 5 and Spring Boot 2 to add dependency injection into your applications. You will start with the basics of Spring like dependency injection, auto-wiring, and constructor injection. After the basics are out of the way you’ll move onto Spring Boot, Spring MVC, Spring JDBC, and Spring Data JPA. Lastly, you’ll delve into Spring’s support for AOP, unit testing, and the MVC architecture. By the end of this course you will have a wide set of tools to work with to create applications that have dependency injection and inversion of control.
Takeaway skills
- Understand the basic concepts of the Spring Framework
- Interact with databases using Spring's support for JDBC and JPA
- Use AOP for implementing cross-cutting concerns in Spring
- Learn the Spring MVC architecture
- Learn how to use Spring Boot to kickstart the development process
- Implement unit testing in the Spring framework
Course Contents
Introduction
- What is Spring
- History
- Terminology
- Spring Architecture
- Reasons for Sustained
- Popularity
Spring Basics
- Creating a Project
- Dependency
- Decoupling Components
- Managing Beans and Dependencies
- Autowiring By Type —@Primary
- Autowiring By Name
- Autowiring — @Qualifier
- Constructor and Setter Injection
Spring In-depth
- Bean Scope
- Mixing Bean Scope
- @ComponentScan
- Bean Lifecycle:@PostConstruct, @PreDestroy
- Bean Lifecycle: Prototype Scoped Beans
- Contexts and Dependency Injection Framework
- Spring Application Configuration
- XML Application Configuration
- XML Configuration with Java Annotations
- Stereotype Annotations
- Using an External Property File
Spring Boot
- What is Spring Boot?
- Creating a REST Service
- Developer Tools
Actuator - Comparing Spring Boot and Spring MVC
Spring JDBC
- Creating a JDBC Starter Project
- Setting up the H2 Database
- SELECT Query
- INSERT Query
- UPDATE Query
- DELETE Query
- DDL Queries
- Custom RowMapper
Spring Data JPA
- What is JPA?
- Defining an Entity
- Creating a Repository
- CRUD Operations
- JPQL Named Query
- Spring Data JPA
- Connecting to Other Databases
Spring REST
- Developing REST services in Spring
- JSON Data Binding
- REST Client – Postman
- REST API Design
- Creating a REST Controller
- @GetMapping
- @PathVariable
- @PostMapping
- @PutMapping
- @PatchMapping
- @DeleteMapping
- Exception Handling I
- Exception Handling II
- Spring Data REST
Database Relationships in Spring
- Basic Concepts
- One-to-One Unidirectional Relationship
- One-to-One Bidirectional Relationship
- One-to-Many Unidirectional Relationship
- One-to-Many Bidirectional Relationship
- Many-to-Many Unidirectional Relationship
- Many-to-Many Bidirectional Relationship
Spring Aspect Orientated Programming (AOP)
- Aspect Oriented Programming
- Terminology
- Defining an Aspect
- Pointcut Expressions
- After Aspect
- Around Aspect
- JoinPoint Configuration File
- Defining a Custom Annotation for Aspects
Spring MVC
- Setting Up a Web Application
- Creating a Servlet
- Using a JSP File
- Passing Parameters with GET request
- Scriptlets and Scriptlet Expressions
- POST request
- Spring MVC Architecture
- Spring MVC Components
- Configuring a Spring MVC Application – Part 1
- Configuring a Spring MVC Application – Part 2
- Controller
- View
- HTML Forms
- Model
- Model – Part 2
- @RequestParam Annotation
- Spring MVC Form Tags
- Spring MVC Form Tags – Part 2
- Form Data Validation
- Validating Required Fields
- Validating Numbers
- Validating Dates
- Validating Patterns with Regular Expressions
- Custom Error Messages
- Custom Validation Annotation
- Dispatcher Servlet Java Configuration
Unit Testing in Spring
- JUnit
- Writing a Unit Test
- Assert Methods
- JUnit Test Lifecycle Annotations
- Stubbing and Mocking
- Mockito Annotations
- Unit Testing in Spring
- Unit Testing Using Spring Boot
- Unit Testing for Java Context
- Unit Testing for XML Context
- Spring Unit Testing with Mockito
Interview Questions
- Spring Framework
- IoC and Dependency Injection
- Beans
- Spring Annotations
- Spring Configuration and Component Scan
- Autowiring and Misc Questions
- Spring Boot
- Spring Data JDBC and JPA
- Database Relationships in Spring
- Spring AOP
- Spring MVC