Spring Basics & SpringBoot & Microservices
Introduction:
Course Introduction -Prerequisites of Spring & SpringBoot
Programming Language vs Technology Vs Framework
Spring & SpringBoot Modules and versions
Importance of Spring & SpringBoot Modules in Real Time Projects
What is Container
• Diifferent Types of Containers
➔ Servlet Container
➔ Jsp Container
➔ EJB Container
➔ IOC container/Spring Container
Core Module with Spring
Introduction and Importance of Core Module.
Inversion Of Control(IOC) principal
Dependency Management
-> Dependency Lookup
-> Dependency Injection
Two types of IOC Containers
>Bean Factory
> Application Context
Spring Beans Configuration
>@Component
>@Bean
Different ways of developing the spring
application
➢ Xml driven configurations
➢ Xml + annotation driven configurations
➢ 100% code driven configurations/ Java
Config approach
Developing the First Spring Application
➢ Composition/HAS –A property
➢ @Configuration
➢ @Autowired
➢ @ComponentScan
➢ Flow of the execution
Different Modes of Dependency Injection
➢ Setter Injection
➢ Constructor Injection
➢ Field Injection
➢ Arbitary Method Injection
Solving the Ambiguity Problem
➢ Using @Qualifier
➢ Using Primary
➢ By Matching the Dependent Spring
Bean id with target class HAS-A
property name
Strategy Pattern
➢ 3 principles of Strategy DP
➢ Strategy DP implementation in Spring
Spring Bean Scopes
▪ Singleton
▪ Prototype
▪ Request
▪ Session
▪ Application
▪ Global Session ( only in 4.x/5.x)
▪ Websocket
➢ @Scope
➢ @Lazy
➢ Pre-instantiation of singleton scope
spring beans
Steoreo Type Annotations
➢ Why the set of annotations are called
steoreo type annotations
➢ @Component
➢ @Service
➢ @Repository
➢ @Controller
➢ Configuration
➢ others
Working with Properties file
➢ Configurating the properties file using
@PropertySource Annotation
➢ Reading the values of properties file
using @Value
➢ Environment object
Bean Factory Container V/S Application
Context Container
➢ Where to use the BeanFactory IOC
container and where to use
ApplicationContext Container
Spring Bean Life Cycle
➢ init life cycle method
➢ destroy life cycle method
➢ Working with @PostConstruct and
@PreDestroy method
Implementation of Core Module with SpringBoot
Spring Vs Spring boot framework
@SpringBootApplication annotation
@EnableAutoConfiguration
@ComponentScan
@SpringBootConfiguration/@Configuration
Creating Spring Boot Application
Spring Starter Wizard in Eclipse IDE
Installing STS plugin in Eclipse IDE
Introduction to Spring Boot Starters
>Spring Boot Parent Starter
> Spring-boot-starter
>Spring-boot-starter-web
>Spring-boot-starter-data-jpa
and etc…
SpringApplication.run(..) method
Spring Boot Application Boot strapping
AutoConfiguration in Spring Boot
Strategy DP implementation in Spring boot
Spring boot Data JPA Module
Need of Spring boot data jpa
Data JPA Module with SpringBoot
> What is JPA
>Spring Data JPA Introduction
>What is ORM
>ORM Basics
>What is Persistence Layer
>Hibernate implementation with JPA
>What is an Entity Class
>JPA Annotations
>@Entity ,@Id ,@Colum , @Table , @Transient and etc…
>Repository Interfaces and their hierarchy in boot 2.x and 3.x
>CurdRepository introduction
>Database CRUD Operations
>CurdRepository methods for DB Operations
>Derived Query Methods in JPA
>Native Queries Execution in JPA
>PagingAndSortingRepository
>JpaRepository introduction
>JpaRepository methods for DB Operations
>CurdRepository vs JpaRepository
> Association Mapping
Spring boot Data MongoDB Module
SQL Vs NoSQL DBs
Where to use SQL DBs and where to use NoSQL DBs
Installing MongoDB , Studio3T
Document class
@Document
@Id
Working with MongoRepository
>Performing Curd Operations with the support of MongoRepository
Special Types in MongoDB
->Collection Mapping
-> Association Mapping
Working with MongoTemplate
->Performing Curd Operations
Spring Boot Mail Module
Need of Mail Server
Java Mail API Vs Spring Boot Mail
Mail Server Architecture
>Incoming Server (POP3/IMAP)
> Outgoing Server (SMTP)
Sending Mail with or with out attachment
Spring boot MVC Module
MVC1 and MVC2 Models
Spring Web MVC Introduction
Spring Web MVC Advantages
Different Components of Spring boot MVC
> DispatcherServlet
> Handler Mapping
> View Resolvers
> Controllers/Handlers
> View comps
Understanding Spring Web MVC Flow
What is Front Controller Servlet & Front Controller Design Pattern
What is DispatcherServlet ?
Handler Mappers / Mappings
Controller, Service, Repository Layers
Creation of SpringBoot Web MVC Application
MVC Module Annotations
@RestController
@RequestMapping
@PathVariable
@RequestParam
@GetMapping
@PostMapping
=> Different ways of Data Rendering
=> Different ways of Data Binding
=>Form Based application development
=>Spring Boot MVC CRUD Example Application
=>Web Application with Thymeleaf
Spring boot Rest Module
Distributed Applications
REST API/Services
=>SOAP vs REST
=>RESTful Services Introduction
=>XML vs JSON
=>HTTP Protocol & Methods
=>HTTP Status Codes
=>Path Variables
=> XxxMapping Annotations
=>@GetMapping,@PostMapping,@DeleteMapping,
=>@PutMapping,@PatchMapping
=>HTTP Headers
=>POSTMAN tool based Testing
=> Mini Project using POSTMAN + Spring boot Rest + Spring Data JPA module
=>Swagger3 documentation
=> Path Variables
=>RestTemplate for Intra Communication
Spring Boot Batch
=>Need of Batch Processing
=> Comps in Batch Processsing
>Job Launcher
>JobListener
>Job
>Step
>ItemWriter
>ItemReader
>ItemProcessor
=>POC on Batch Processing
=> Converting the Csv file to DB table data
=> Converting the DB table data to CSV file data
Spring Boot Scheduling
=> Need of Scheduling
=> Period of Time
=> Point of Time
=> Scheduling Using Cron Expressions
=> Different Tools to generate the Cron Expressions
Spring boot Security Module
=> Need of Security
=> Need of Authorization and Authentication
=> Using Different Authentication Info Provider
-> DB as Authentication Info Provider
=> Registering the user credentials having the encryption
=> Spring Boot Security with Spring data jpa
Spring boot oauth 2.x
=> Need of oauth 2.0
=> Need of SSO(Single Sign On)
=> Different Phases of oauth 2.x implementation
=> Authorization Server
=> Resource Server
=> Client Application
=> Using the FaceBook as Authorization and Resource Server
=> Using the Gmail as the Authorization and Resource Server
Spring boot JWT (Json Web Tokens)
=> Need of JWT
=> Different Phases of JWT implementation
=> Example App on JWT
Spring Boot Messaging
=> Synchronous Communication Vs Asynchronous Communication
=> Need of Messaging Based Communication
=> Different Styles of Communication
-> PTP model (Point To Point Communication)
-> Pub-Sub Model (Publisher and Subscriber Model)
=> Spring Boot JMS implementation using ActiveMQ/RabbitMQ as the MOM software
Spring Boot Kafka
=> Introduction to apache kafka
=> kafka terminologies
>MOM
>kafka cluster
>producer
>consumer
> offset/index
> Bootstrap server
> replica -factor
=> kafka sender and Reciver App communication using kafka commands
=> kafka Messaging using Spring boot Programming
Spring Cloud -Micro Services :
Monolith Architecture Introduction
Monolith Architecture case study
Monolith Application Deployment Process
Monolith Architecture Drawbacks
Micro services Introduction
Micro Services Advantages & DisAdvantages
Micro Services case study
Identifying Micro services boundaries
Micro services Architecture
Micro services Development
Eureka Server or R & D Server
Interservice communication
Using DiscoveryClient
LoadBalancerClient
FeignClient
RestTemplate
Config Server with ExternalConfig File and Native Config file
Spring boot actuators
>bean , info, threaddump , heapdump, loggers, metrics,mappings,scheduledtasks
and etc..
Spring boot Admin server
Circuit Breaker implementation using resilience4j
API Gateway implantation using Spring Cloud API Gateway
Distributed Logging Using ELK stack
E--- ElasticSearch
L--- LogStash
K --- Kibana
Mini Project Using MicroServices Architecture
Design patterns in MicroServices
Miscellaneous
DevTools In SpringBoot
Actuators in Spring Boot
Intergration with UI Technologies
Redis cache
Webflux programming
Development TOOLS
Maven
Log4J/slf4j
POSTMAN
Swagger
Junit
Mockito
GITHUB
Debugging
Agile-JIRA