Java TOC
Java TOC
2 A First Look
6 Flow of Control
10 Interfaces
11 Java Beans
13 Exceptions
Collections Overview
The Collections Framework and its API
Collections and Java Generics
Generics and Type-Safe Collections
Diamond Operator
Lists, Sets, and Maps
Interfaces and Contracts
Iteration and Autoboxing
Utility Classes - Collections and Arrays
Using ArrayList, HashSet, and HashMap
for-each Loop
Processing Items With an Iterator
Sorting with Collections
https://www.oracle.com/java/technologies/javase/codeconventions-introduction.html
https://www.oracle.com/technetwork/java/codeconventions-150003.pdf
Sr No Main Topic
1 Inner Classes
3 File Handling
5 Multithreading Techniques
6 Logging
7 Garbage Collection
8 Lambda Expressions & Functional Interfaces
9 Method References
10 Stream API
Stream Processing
11 Collectors
Sub Topic
Overview and Motivation
Stronger Encapsulation, Rules and Caveats
Defining and Using Inner Classes
Member-Level, Method-Local, Anonymous Classes
Static Nested Classes
Nested Classes, Nested Interfaces, Nested Enums
Locales
Resource bundles
Locale-specific formatting and parsing
Overview
Popular Logging Frameworks(Log4J)
Writing Log Messages
Creating Loggers and Writing Log Messages
Log Levels & best practices
Essential concepts
Understanding object lifetimes
Generational collectors
Heap organization
Garbage collection options
Garbage collection monitoring and tuning(memory analyzer tool)
Overview
Functional Interfaces and Lambdas
Target Context
Using Lambda Expressions
Syntax, Lambda Compatibility
Variable Capture
Type Inference
Overview
Streams vs. Collections
Anatomy of a Stream
1 Introduction to Docker
3 Docker Containers
4 Docker Image
5 Docker Volumes
Subtopic
Evolution of Containerization
VM vs Containers
Why Docker? Why now?
What is docker and Who is it for
Docker - Advantages & Caveats
Docker Ecosystem & Architecture
Docker Editions
Docker Versions and updates
Docker for Mac
Docker for windows 10 pro
Docker for windows 8.1
Install Docker on linux
Structural Directives
Conditionally Execute Template
Example: ngIf
Looping Using ngFor
ngFor Local Variables
Manipulating the Collection
Example - Deleting an Item
Item Tracking with ngFor
Swapping Elements with ngSwitch
Template Reference Variable
Inter Component Communication
Communication Basics
The Data Flow Architecture
Preparing the Child to Receive Data
Send Data from Parent
More About Setting Properties
Firing Event from a Component
@Output() Example - Child Component
@Output() Example - Parent Component
Full Two Way Binding
Setting up Two Way Data Binding in Parent
Pipes and Data Formatting
What are Pipes?
Built-In Pipes
Using Pipes in HTML Template
Chaining Pipes
The number Pipe
Currency Pipe
Template Driven Forms
Importing Forms Module
Basic Approach
Setting Up a Form
Getting User Input
Omitting ngForm Attribute
Initialize the Form
Two Way Data Binding
Form Validation
Angular Validators
Displaying Validation State Using Classes
Additional Input Types
Checkboxes
Select (Drop Down) Fields
Rendering Options for Select (Drop Down)
Date fields
Radio Buttons
Services and Dependency Injection
What is a Service?
Creating a Basic Service
The Service Class
What is Dependency Injection?
Injecting a Service Instance
Injectors
Injector Hierarchy
The Root Injector
Registering a Service with a Component's Injector
Where to Register a Service?
Dependency Injection in Other Artifacts
Providing an Alternate Implementation
Dependency Injection and @Host
Dependency Injection and @Optional
HttpClient
The Angular HTTP Client
Using The HTTP Client - Overview
Importing HttpClientModule
Simple Example
Service Using HttpClient
ES6 Import Statements
Making a GET Request
What does an Observable Object do?
Using the Service in a Component
The PeopleService Client Component
Error Handling
Customizing Error Object with .catch()
Making a POST Request
Making a PUT Request
Making a DELETE Request
The Angular Component Router
The Component Router
View Navigation
The Angular Router API
Creating a Router Enabled Application
Hosting the Routed Components
Navigation Using Links and Buttons
Programmatic Navigation
Passing Route Parameters
Navigating with Route Parameters
Obtaining the Route Parameter Values
Retrieving the Route Parameter Synchronously
Retrieving a Route Parameter Asynchronously
CONTENT
Introduction to Microservices
What are Microservices?
Monolith vs Microservice based architecture? Pros and Cons of microservice archiecture
Domain driven design. How to identify microservices?
Distributed transactions, Eventual consistency
Data handling in case of microservices. Synchronisation issues and how to address them
Decentralized Governance, Scalability, Fault Tolerance
Cloud Computing
Spring Cloud
Externalizing Configuration - Spring Cloud Config
The Spring Cloud Configuration Server
Why Configuration Management is Important
Configuration Management Challenges in Microservices
Separation of Configuration from Code
Configuration Service
How the Configuration Service Works
Broadcasting Configuration Changes - Spring Cloud Bus
Introduction to Spring Cloud Bus
Implementing Spring Cloud Bus
Service Discovery with Netflix Eureka
Service Discovery in Microservices
Load Balancing in Microservices
Netflix Eureka
Eureka Architecture
Communications in Eureka
Scale Services - Load-Balancing with Netflix Ribbon
Load Balancing in Microservices
Netflix Ribbon
Server-side load balance
Client-side Load Balance
Architecture
Fault Tolerance with Netflix Hystrix
Netflix Hystrix
Design Principles
Cascading Failures
Bulkhead Pattern
Circuit Breaker Pattern
Gateway/ Edge Components with Netflix Zuul
API gateway significance with respect to microservice based architecture
Zuul is the Gatekeeper
Request Handling
Filters
Communication between Microservices
Microservices communication Http, gRPC, event based
Introduction to Feign
Configuring Feign
Access services using Feign REST client
SPRING BOOT
CONTENT
Introduction
Spring Boot Overview
maven, gradle and Spring
What is Spring Boot and What It Does
Need of Spring Boot
Difference between Spring & Spring Boot
Spring Boot Structure
Spring POMs with Boot Parents
Dependency management using Spring Boot starters
Creating a simple Boot application using Spring
Initializr web-site
Spring Boot Features
Auto Configuration
Working with Properties - YAML and .properties
Component Scan
Devtools
Embeded Servers
Profiling
Versioning
Exception handling
RESTful Services with SpringBoot
REST Overview, URI Templates
REST and Spring MVC
Spring support for REST
@RequestMapping/@PathVariable, @RequestBody, @ResponseBody
URI Templates and @PathVariable
Controllers with @RestController
Understand status codes
Generating JSON
JSON Overview
JSON Representations for Resources
Message Converters
Generating XML
JAXB and Jackson Message Converters for XML
JAXB / @XmlRootElement
Content Negotiation
Java Clients for RESTful Services
Client Requirements and Spring's RestTemplate
getForObject() / getForEntity()
Other RestTemplate Methods
Accessing Headers / exchange()
Common REST Patterns
GET: Read
POST: Create
PUT: Update
DELETE: Delete
Programming on server side, and client side
Handle errors/ Exceptions is REST
Spring Boot Database Support
Basic Auto-configuration - Datasource and Pooling
Configuration Properties
Spring Boot's JPA Support - spring-boot-starter-data-jpa
Spring Boot Data (with Data-JPA in Detail)
Working with Databases
Working with embedded database - H2
Working with NoSQL database - MongoDB
Spring and Spring Data with JPA
Overview and Architecture
Configuring Spring Data JPA
Repositories and JPA Repositories
Using CrudRepository/JpaRepository