Microservice Course Structure
Microservice Course Structure
Milestone Module
Lecture Title
Java Identifiers
Java DataTypes
Data Types, Casting, Keywords
Java Reserve words
TypeCasting in primitive types
Working with Operators
Working with flow control statements
Operator, Array, String
Working with Arrays
Working with String,StringBuilder,StringBuffer
JVM Area and its Architecture
Types of variables and its scope
JVM, Variables
var-args in java
new vs newInstance(), instanceof vs isInstance()
Java ClassNotFoundException vs NoClassDefFoundError
Concept
Exception handling
revision Exception, imports, modifiers
java file strucutre,different types of import
packages and its modifiers
Introduction to oops
Inheritance in java
OOPS and MultiThreading Method Overloading and Method Overriding
Abstract class vs interface
MultiThreading
Collections
Collection and JDBC
Usage of JDBC API
Introduction to Frameworks
Programming language
Technology
Framework
Java Bean (VO /DTO/BO classes)
Component class vs java bean vs spring Bean
Need of Framework and How Spring fits into
POJI vs POJO
Enterprise world
Introduction to Spring
What is Spring
How Spring fits into the Enterprise world
Strategy Design Pattern
Types of IOC
Constructor VS Setter Injection vs Field Injection
Collection Dependency Injection
Bean Alias
Bean Scopes
Bean Autowiring
Nested Bean Factories
Using P & C Namespace
Depends-On
SpringCore Basics
Bean Lifecycle
Aware Interfaces
Static Factory Method Instantiation
Instance Factory Method Instantiation
Factory Beans
Method Replacement
Lookup Method Injection
SPRING CORE ANNOTATION SUPPORT
@Configuration
@Repository
@Required
@Autowired
Frameworks and Need of Spring @Qualifier
@Scope
@Component
@Service
@Controller
@Bean
@DependsOn
SpringCore Advanced
SpringCore Advanced @Lazy
@Value
@ComponentScan
@Profile
@Import
@ImportResource
@ContextConfiguration
@PostConstruct
@PreDestroy
@Resource
@Inject
@Named
@Primary
SpringCore mini Projects
Layered Applications /MiniProjects
using xml driven cfgs
using 100% code cfgs
using spring boot
SpringBoot starter files
Introduction to SpringBoot Building Spring Boot Application
Normal Spring Manual Approach
Maven Overview
Spring Initializer
STS
Eclipse with STS Plugin
Understanding the Spring Bootautoconfiguration
e) findAll( ) method
f) deleteById( ) method
g) deleteAllById( ) method
h) delete( ) method
Persistence i) count( )
Layer using
SpringBoot j) existsById( )
Custom findByXXX method syntax
Custom Queries Execution in Data JPA
JpaRepository introduction
JpaRepository methods for DB operations
Pagination Using Data JPA methods
Sorting Using Data JPA Methods
Query By Example Executor
Generators
SpringDataJPA-Advanced Custom Generators in Spring Data
Embedded Database Introduction
Embedded Database vs External Database
Application Development using Embedded Database (H2)
Application Development Using MYSQL Database
Application Development Using PostGreSQL Database
Application Development Using MongoDB
g) Mappings
h) Shutdown etc
Unit Testing for Spring Boot Application using Junit with Mocking
Code Coverage using Jacocco
Spring Boot Security
Basics
Basic Authentication
Form Based Authentication
Authorization
SpringSecurity in WebApplications Remember me
Different authentication providers
Role Based Access Control
Attribute Based Access Control
LDAP Based
SSL Security & TLS Security
Distributed Applications
Distributed Technologies
SOAP vs REST
RESTful Services Introduction
REST principles
XML
XSD
One Time operations
Run Time Operations
a) Marshalling
SpringRest
b) Un Marshalling
JAX-B Introduction
JAX-B Architecture
Applications development with JAX-B
JSON Introduction
XML vs JSON
JACKSON API
Converting Java object to JSON and vice versa using Jackson API
GSON API
Converting Java Object to JSON and Vice Versa using GSON API
HTTP Protocol Details
HTTP Methods
a) GET
b) POST
c) PUT
d) DELETE
HTTP Status Codes
working a) 1XX
with b) 2xx
Distrubuted
Application c) 3xx
s d) 4xx
e) 5xx
@RestController
@RequestBody
@ResponseBody
@RequestParam
@PathVariable
MediaTypes
Consumes
SpringRest Building applications
Produces
Accept Header
Content-Type header
REST API Development using Spring Boot
POSTMAN
SWAGGER & SWAGGER UI
Exception Handling in REST API
REST Security
a) HTTP Basic Auth
b) JWT
c) OAuth2.0
Mono Objects
Flux Objects
REST Client Introduction
RestTemplate
WebClient
RestTemplate vs WebClient
Reactive Programming
Synchronous vs Asynchronous Calls
Spring AOP
AOP Concepts
Programmatic VS Declarative AOP
Programmatic AOP
i. Types of Advices
ii. Types of Pointcuts
Cross iii. Working with proxies
Cutting Spring AOP and Spring Transaction Declarative AOP
concerns i. Using AOP 2.0 Config element
ii. OGNL Expressions
Aspect J AOP
Spring Tx
Aop 2.0 Configuration driven Transaction Management
Aspect J annotation based Transaction Management
Microservices
Introduction
Principle and Characteristics
Usecases & Benefits
Challenges
Design standards
MicroServices Communication
i) Synchronous
ii) Asynchronous
Pitfalls
Spring Cloud
Introduction
Cloud Architecture
Cloud application benefits
Netflix
Introduction
Microservic Eureka Server & Eureka Client
es Feign Client, Ribbon
API Gateway
Introduction to ZUUL
Design standards
Microservices-2 Integration
Oatuh2 Concepts
Client Types
Protocol End Points
Grant Types
Implantation with Token Based
JWT Tokens
Cloud Hosting
AWS account setup
Hosting to AWS
Enabling cloud features like load balancing, security
Reactive Programming using spring boot
Deployment
Deployment
webflux
Spring boot mail
Spring boot captcha
Spring social
Introduction to Recursion
Fibonacci Series using Recursion
Recursion Factorial using Recursion
Count of number of stairs using Recursion
Power function using Recursion
Introduction to Array
Memory addressing in an array
Array and 2D Array Passing an array to functions
Introduction to 2D array
Storage in 2D array
Reversal of an array
Palidrome in an array
Practice Problems Missing number in an array
Lower Bound of an element
Square root of a number
Introduction to String
Strings Storage of string
Inbuild functions in string
Linear Search
Searching Algorithms
Binary Search
Rotation of matrix
Strings and Practice Problems Search in 2D matrix
Prefix Sum in 2D matrix
Introduction to Stack
Stack using Arrays
Stack using Linked Lists
Stack and Queue
Introduction to Queue
Queue using Arrays
Queue using Linked List
Valid Parenthesis
Practice Problems Implementation of Stack using Queue
Implementation of Queue using Stack
Data
Structure Subset Permutations and Combinations
algorithm Interview Problem: N-Queens
Backtracking
Interview Problem: Solving a Sudoko
Interview Problem: Rat in a Maze
Introduction to Tree
Taking a tree as input and printing
Generic Tree
Tree traversals: Inorder, Preorder and Postorder Traversals
Diameter of a Binary Tree
Checking of BST
Introduction to HashMaps
Inbuilt HashMap
Hash Functions
HashMaps Collision Handling Techniques
Insert and Delete Operations in HashMap
Load Factor
Rehashing
Introduction to Graphs
Depth First Seach Traversal
Graphs
Breadth First Search Traversal
Weighted and Directed Graphs
Dynamic Programming
Fibonnaci Series using Recursion, Memoization and Tabulation
Longest Common Subsequence using Recursion, Memoization and Tabulation
Dynamic Programming Edit Distance using Recursion, Memoization and Tabulation
Knapsack Problem using Recursion, Memoization and Tabulation
Sum of Subset using Recursion, Memoization and Tabulation
Catalan Number Concept
Introduction
Why we use Design Patterns
Difference between Design patterns & Anti Patterns
Pattern Elements
Design Patterns
Classification of Design Patterns
Core Level Design Patterns
Web Level Design Patterns
Enterprise Application Level Design Patterns