web age training
web age training

spring boot training
06/26/2023 - 06/29/2023
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,930.00
Enroll
07/10/2023 - 07/13/2023
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,930.00
Enroll
07/31/2023 - 08/03/2023
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,930.00
Enroll

Cloud-based, highly-distributed applications face additional challenges in supporting a dynamic environment – especially around configuration, service discovery, service resilience and monitoring.  Spring Cloud embraces and extends the popular suite of open source cloud tools published by Netflix (Eureka, Hystrix, Ribbon, etc).

This course introduces Spring Boot, Spring Cloud and the Netflix OSS suite as a way of deploying highly resilient and scalable RESTful services and web applications.

 

 

 

 

Objectives

In this training, attendees will learn how to:

  • Create Spring Boot projects
  • Use databases and JPA in Spring Boot
  • Create RESTful services with Spring Boot
  • Deploy services that use Netflix Eureka, Hystrix and Ribbon to create resilient and scalable services

Topics

  • Introduction to the Spring Framework
  • Spring Annotation Configuration
  • Spring Framework 
  • Introduction to Spring Boot Configuration
  • Spring MVC
  • Overview of Spring Boot Database Integration
  • Using Spring with JPA or Hibernate
  • Introduction to MongoDB
  • Working with Data in MongoDB
  • Spring Data with MongoDB
  • Spring REST Services
  • Spring Security
  • Spring JMS
  • Microservices
  • Spring Cloud Config
  • Service Discovery with Netflix Eureka
  • Load-Balancing with Netflix Ribbon
  • Application Hardening with Netflix Hystrix
  • Edge Components with Netflix Zuul
  • Distributed Tracing with Zipkin

 

Audience

Java developers preparing to write and - or support back-end server applications using the Spring framework.

Prerequisites

Students should have experience with Java development

Duration

4 Days

Download Sample Labs Lab Setup Guide

Outline for Mastering Microservices with Spring Boot and Spring Cloud Training

Chapter 1. Introduction to the Spring Framework

What is the Spring Framework?

Spring Philosophies

Why Spring?

Spring Modules

Requirements and Supported Environments

Using Spring with Servers

Role of Spring Container

Spring Example

Avoiding Dependency on Spring

Additional Spring Projects/Frameworks

Summary

 

Chapter 2. Spring Annotation Configuration

Spring Containers

Annotation-based Spring Bean Definition

Scanning for Annotation Components

Defining Component Scope Using Annotations

JSR-330 @Named Annotation

JSR-330 @Scope

Annotation-based Dependency Injection

Wiring Bean using @Inject

@Autowired – Constructor

@Autowired – Field

@Autowired – method

@Autowired – Collection

@Autowired – Maps

@Autowired & @Qualifier with Constructors, Fields, and Methods

@Autowired & Custom Qualifiers

@Autowired & Simple Custom Qualifier Field

@Autowired & Simple Custom Qualifier Method

@Autowired & CustomAutowireConfigurer

Dependency Injection Validation

@Resource

@PostConstruct and @PreDestroy

Summary

Chapter 3. Spring Framework Configuration

Java @Configuration Classes

Defining @Configuration Classes

Loading @Configuration Classes

Modularizing @Configuration Classes

Qualifying @Bean Methods

Trouble with Prototype Scope

Configuration with Spring Expression Language

Resolving Text Messages

Spring Property Conversion

Spring Converter Interface

Using Custom Converters

Spring PropertyEditors

Registering Custom PropertyEditors

Summary

Chapter 4. Introduction to Spring Boot

What is Spring Boot?

Spring Framework

How is Spring Boot Related to Spring Framework?

Spring Boot 2

Spring Boot Main Features

Spring Boot on the PaaS

Understanding Java Annotations

Spring MVC Annotations

Example of Spring MVC-based RESTful Web Service

Spring Booting Your RESTful Web Service

Spring Boot Skeletal Application Example

Converting a Spring Boot Application to a WAR File

Externalized Configuration

Starters

Maven - The 'pom.xml' File

Spring Boot Maven Plugin

Gradle - The 'build.gradle' File

Spring Boot Maven Plugin

HOWTO: Create a Spring Boot Application

Summary

Chapter 5. Spring MVC

Spring MVC

Spring Web Modules

Spring MVC Components

DispatcherServlet

Spring WebFlux Module

Spring WebFlux

Template Engines

Spring Boot MVC Example

Spring MVC Mapping of Requests

Advanced @RequestMapping

Composed Request Mappings

Spring MVC Annotation Controllers

Controller Handler Method Parameters

Controller Handler Method Return Types

View Resolution

Spring Boot Considerations

Summary

Chapter 6. Overview of Spring Boot Database Integration

DAO Support in Spring

Spring Data Access Modules

Spring JDBC Module

Spring ORM Module

DataAccessException

@Repository Annotation

Using DataSources

DAO Templates

DAO Templates and Callbacks

ORM Tool Support in Spring

Summary

Chapter 7. Using Spring with JPA or Hibernate

Spring JPA

Benefits of Using Spring with ORM

Spring @Repository

Using JPA with Spring

Configure Spring Boot JPA EntityManagerFactory

Application JPA Code

"Classic" Spring ORM Usage

Spring JpaTemplate

Spring JpaCallback

JpaTemplate Convenience Features

Spring Boot Considerations

Spring Data JPA Repositories

Database Schema Migration

Database Schema Migration for CI/CD using Liquibase

How Liquibase Works?

Changelogs in Liquibase

Preconditions in Changelogs

Sample Empty Changelog

Sample Precondition in Changelog

Sample Changeset in Changelog

Running Liquibase

Liquibase Commands

Summary

Chapter 8. Introduction to MongoDB

MongoDB

MongoDB Features

MongoDB’s Logo

Positioning of MongoDB

MongoDB Applications

MongoDB Data Model

MongoDB Limitations

MongoDB Use Cases

MongoDB Query Language (QL)

The CRUD Operations

The

find

Method

The

findOne

Method

A MongoDB QL Example

Data Inserts

MongoDB vs Apache CouchDB

Summary

Chapter 9. Working with Data in MongoDB

Reading Data in MongoDB

The Query Interface

Query Syntax is Driver-Specific

Projections

Query and Projection Operators

MongoDB Query to SQL Select Comparison

Cursors

Cursor Expiration

Writing Data in MongoDB

An Insert Operation Example

The Update Operation

An Update Operation Example

A Remove Operation Example

Limiting Return Data

Data Sorting

Aggregating Data

Aggregation Stages

Accumulators

An Example of an Aggregation Pipe-line

Map-Reduce

Summary

Chapter 10. Spring Data with MongoDB

Why MongoDB?

MongoDB in Spring Boot

Pom.xml

Application Properties

MongoRepository

Custom Query Methods

Supported Query Keywords

Complex Queries

Create JavaBean for Data Type

Using the Repository

Summary

Chapter 11. Spring REST Services

Many Flavors of Services

Understanding REST

RESTful Services

REST Resource Examples

@RestController Annotation

Implementing JAX-RS Services and Spring

JAX-RS Annotations

Java Clients Using RestTemplate

RestTemplate Methods

Summary

Chapter 12. Spring Security

Securing Web Applications with Spring Boot 2

Spring Security

Authentication and Authorization

Programmatic vs Declarative Security

Getting Spring Security Gradle or Maven

Spring Security Configuration

Spring Security Configuration Example

Authentication Manager

Using Database User Authentication

LDAP Authentication

What is Security Assertion Markup Language (SAML)?

What is a SAML Provider?

Spring SAML2.0 Web SSO Authentication

Setting Up an SSO Provider

Adding SAML Dependencies to a Project

Dealing with the State

How Can I Maintain State?

SAML vs. OAuth2

OAuth2 Overview

OAuth – Facebook Sample Flow

OAuth Versions

OAuth2 Components

OAuth2 – End Points

OAuth2 – Tokens

OAuth – Grants

Authenticating Against an OAuth2 API

OAuth2 using Spring Boot – Dependencies

OAuth2 using Spring Boot – application.yml

OAuth2 using Spring Boot – Main Class

OAuth2 using Spring Boot – SPA Client

JSON Web Tokens

JSON Web Token Architecture

How JWT Works

JWT Header

JWT Payload

JWT Example Payload

JWT Example Signature

How JWT Tokens are Used

Adding JWT to HTTP Header

How The Server Makes Use of JWT Tokens

What are “Scopes”?

JWT with Spring Boot – Dependencies

JWT with Spring Boot – Main Class

Summary

Chapter 13. Spring JMS

Spring JMS

JmsTemplate

Connection and Destination

JmsTemplate Configuration

Transaction Management

Example Transaction Configuration

Producer Example

Consumer Example

Converting Messages

Message Listener Containers

Message-Driven POJO's Async Receiver Example

Message-Driven POJO's Async Receiver Configuration

Spring Boot Considerations

Summary

Chapter 14. Microservices

What is a “Microservice”?

One Helpful Analogy

SOA – Microservices Relationship

ESB – Microservices Relationship

Traditional Monolithic Designs and Their Role

Disadvantages of Monoliths

Moving from a Legacy Monolith

When Moving from a Legacy Monolith

The Driving Forces Behind Microservices

How Can Microservices Help You?

The Microservices Architecture

Utility Microservices at AWS

Microservices Inter-connectivity

The Data Exchange Interoperability Consideration

Managing Microservices

Implementing Microservices

Embedding Databases in Java

Microservice-Oriented Application Frameworks and Platforms

Summary

Chapter 15. 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

Cloud Config Server Properties File

Git Integration

Properties

Configuration Client

Sample Client Config File

Sample Client Application

Dynamic Property Updates – Server

Dynamic Property Update – Client

Dynamic Property Update – Execute

Summary

Chapter 16. Service Discovery with Netflix Eureka

Service Discovery in Microservices

Load Balancing in Microservices

Netflix Eureka

Eureka Architecture

Communications in Eureka

Time Lag

Eureka Deployment

Peer Communication Failure between Servers

Eureka Server Configuration

Eureka Client/Service

Eureka Client Properties

Spring Cloud DiscoveryClient Interface

ServiceInstance JSON

ServiceInstance Interface

What about Services

Eureka and the AWS Ecosystem

Summary

Chapter 17. Load-Balancing with Netflix Ribbon

Load Balancing in Microservices

Netflix Ribbon

Server-side load balance

Client-side Load Balance

Architecture

Load Balance Rules

RoundRobinRule

AvailabilityFilteringRule

WeightedResponseTimeRule

RandomRule

ZoneAvoidanceRule

IPing Interface (Failover)

Using Ribbon

YAML Configuration

Configuration Class

Client Class

Client Class Implementation

Integration with Eureka (Service Discovery)

Using Ribbon in the Amazon AWS Cloud

Summary

Chapter 18. Application Hardening with Netflix Hystrix

Netflix Hystrix

Design Principles

Design Principles (continued)

Cascading Failures

Bulkhead Pattern

Circuit Breaker Pattern

Thread Pooling

Request Caching

Request Collapsing

Fail-Fast

Fallback

Using Hystrix

Circuit Breaker Configuration

Fallback Configuration

Collapser Configuration

Rest Controller and Handler

Collapser Service (Part 1)

How the Collapser Works

Hystrix Monitor

Enable Monitoring

Turbine

The Monitor

Monitor details

Summary

Chapter 19. Edge Components with Netflix Zuul

Zuul is the Gatekeeper

Request Handling

Filters

Filter Architecture

Filter Properties

filterType()

filterOrder()

shouldFilter()

Run()

Cancel Request

Dynamic Filter Loading

Filter Communications

Routing with Eureka and Ribbon

Summary

Chapter 20. Distributed Tracing with Zipkin

Zipkin

Zipkin Features

Architecture

The Collector

Storage

API

GUI Console

Zipkin Console Homepage

View a Trace

Trace Details

Dependencies

Dependency Details

Zipkin in Spring Boot

Zipkin Configuration

Summary

 

Frequently Asked Questions

What is Spring Framework?

Spring Framework is an open-source application container for Java that supplies many useful features, such as Inversion of Control, Dependency Injection, abstract data access, transaction management, and more. Spring was initially introduced back in 2002 by Rod Johnson as a 30K lines of code framework accompanying his book “Expert One-on-One J2EE Design and Development”. The framework was initially known as “interface21” but was later renamed and released as an open source project under the name “Spring”. You can read the full story at Spring’s blog.

What is Spring Boot?

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. All in all, Spring Boot is a project built on the top of the Spring framework. It provides a simpler and faster way to set up, configure, and run both simple and web-based applications.

In the Spring core framework, you need to configure all the things for yourself. Hence, you can have a lot of configuration files, such as XML descriptors. That’s one out of the main problems that Spring Boot solves for you.

It smartly chooses your dependencies, auto-configures all the features you will want to use, and you can start your application with one click. Furthermore, it also simplifies the deployment process of your application.

What is Inversion of Control (IoC)?

One of Spring’s core features it the usage of the concept Inversion of Control (IoC). IoC is about inverting the flow of control that the traditional programming model used to have in terms of objects at the higher-level handling the creation and management of lower-level objects life cycle. In the IoC programming model, higher-level objects rather receive one or more instances of these dependencies from the calling object or external framework. This is why IOC is also termed Dependency Injection, wherein the dependencies are injected appropriately, and, objects bother themselves solely with the program execution and not with the object creation.

Simply said Inversion of Control (IoC) and Dependency Injection (DI) patterns are all about removing dependencies from your code.

What is the best way to learn Spring Boot?

Web Age Solution’s Spring Boot Training offers the best Spring Boot courses that you need to master the technology. With our live instructor-led courses, we strive hard to make sure your learning objectives are fulfilled.

Our courses are offered as instructor-led, onsite live Spring Boot training which can be carried out locally on customer premises or in Web Age corporate training centers. Remote live training is carried out by way of an interactive, remote desktop.

Can I take Spring Boot Training online?

Yes! Our Spring Boot training is available as “onsite live training” or “remote live training”. Onsite live Spring Boot training in Toronto can be carried out locally on customer premises or in Web Age corporate training centers. Remote live Spring Boot training is carried out by way of an interactive, remote desktop.

Why Choose Web Age Solutions for Spring Training?

 

Best price in the industry

You won’t find better value in the marketplace. If you do find a lower price, we will beat it.

Various delivery methods

Flexible delivery methods are available depending on your learning style.

Resources

Resources are included for a comprehensive learning experience.

 

We regularly offer Spring Training classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.