Spring Boot Microservices And Spring Cloud

Learn to build RESTful Microservices with Spring Boot and Spring Cloud

Last updated 2022-01-10 | 4.5

- Build and run RESTful Microservices
- Implement User Authentication
- Eureka Discovery Service

What you'll learn

Build and run RESTful Microservices
Implement User Authentication
Eureka Discovery Service
Implement User Authorization with Spring Security and JWT
Spring Cloud API Gateway
Learn to use JPA to persist data into a Database
Cloud Cloud Config Server
Learn to install MySQL Server and persist data into MySQL
Spring Cloud Bus and Rabbit MQ
H2 in-memory database and H2 Console
Spring Boot Actuator
Learn to use HTTP Postman
Use Spring Security
Learn to use Spring Initializer
Distributed Tracing with Sleuth and Zipkin
Learn to use Spring Tool Suite
Centralized Logging with ELK Stack(Logstash
Elasticsearch
Kibana)
Run Microservices in Docker Containers

* Requirements

* Know Java
* Mac computer

Description

  • Build and run RESTful Microservices
  • Implement User Authentication
  • Eureka Discovery Service
  • Implement User Authorization with Spring Security and JWT
  • Spring Cloud API Gateway
  • Learn to use JPA to persist data into a Database
  • Cloud Cloud Config Server
  • Learn to install MySQL Server and persist data into MySQL
  • Spring Cloud Bus and Rabbit MQ
  • H2 in-memory database and H2 Console
  • Spring Boot Actuator
  • Learn to use HTTP Postman
  • Use Spring Security
  • Learn to use Spring Initializer
  • Distributed Tracing with Sleuth and Zipkin
  • Learn to use Spring Tool Suite
  • Centralized Logging with ELK Stack(Logstash, Elasticsearch, Kibana)
  • Run Microservices in Docker Containers

Course content

31 sections • 246 lectures

Source Code Preview 00:08

Course Overview Preview 07:23

A few suggestions Preview 03:29

What is a Microservice? Preview 07:11

Sample Microservices Architecture Preview 07:20

Download and Install Postman HTTP Client Preview 02:09

Postman Overview Preview 10:41

Resource and Collection URIs Preview 11:12

HTTP Methods: GET, POST, DELETE and PUT Preview 03:44

HTTP Headers: Accept and Content Type Preview 04:12

Install Java Platform(JDK) Preview 05:48

Download and Install Spring Tool Suite(STS) Preview 01:55

Introduction Preview 00:41

Creating a New Project Preview 06:12

Creating a new Spring project using Spring Boot Initializr Preview 04:42

Create Users Rest Controller class Preview 02:45

Adding Methods to Handle POST, GET, PUT, DELETE HTTP requests Preview 03:13

Running Web Service Application Preview 04:36

Reading Path Variables with @PathVariable annotaion Preview 03:31

Reading Query String Request Parameters Preview 04:51

Making Parameters Optional or Required Preview 04:35

Returning Java Object as Return Value Preview 04:11

Returning Object as JSON or XML Representation Preview 05:35

Set Response Status Code Preview 04:58

Reading HTTP POST Request Body. The @RequestBody annotation. Preview 08:13

Validating HTTP POST Request Body Preview 08:56

Store Users Temporary Preview 04:50

Handle HTTP PUT Request Preview 09:06

Handle HTTP Delete Request Preview 04:52

Handle an Exception Preview 07:44

Return Custom Error Message Object Preview 05:35

Handle a Specific Exception Preview 03:06

Throw and Handle You Own Custom Exception Preview 04:13

Catch More Than One Exception with One Method Preview 02:54

Dependency Injection: Create and Autowire a Service Layer Class Preview 10:54

Constructor Based Dependency Injection Preview 06:24

Run Web Service as a Standalone Application Preview 04:52

Introduction to Eureka Discovery Service Preview 04:29

Startup Eureka Service Discovery Preview 05:39

Troubleshooting Preview 00:16

Introduction to Building a Users Microservice Preview 02:10

Users Microservice - Create new Spring Boot Project Preview 03:40

Enable Eureka Client Preview 03:01

Create Users Rest Controller Preview 02:04

Access Users Web Service Endpoint via Eureka Discovery Service Preview 02:59

Exercise - Create Account Management Microservice Preview 00:09

Introduction to Building an Account Management Microservice Preview 01:34

Password Reset - Create a new Spring Boot Project Preview 03:59

  • Create a new Spring Boot Project

  • Create a new RestController

  • Enable Eureka Discovery Client

Access Account Management Microservice via Eureka Discovery Service Preview 02:56

Important note Preview 01:48

Introduction to Zuul API Gateway Preview 03:24

Create a ZUUL API Gateway Project Preview 03:37

Access Microservices via API Gateway Preview 04:14

Important note Preview 00:04

Load Balancer - Introduction Preview 00:50

Starting Up More Microservices Preview 08:58

Trying How Load Balancer Works Preview 04:47

Important Note Preview 01:43

Introduction Preview 06:27

Creating API Gateway Project Preview 05:04

Automatic Mapping of Gateway Routes Preview 06:49

Manually Configuring API Gateway Routes Preview 07:49

Trying how it works Preview 04:08

Rewriting URL Path Preview 05:06

Automatic & Manual Routing Preview 01:57

Build-In Predicate Factories Preview 03:30

Gateway Filters Preview 00:10

Starting Up More Microservices Preview 08:58

Trying How Load Balancer Works Preview 03:53

H2 In-memory Database. Introduction. Preview 03:19

H2 Database Console Overview Preview 07:40

Adding Support for the H2 Database Preview 04:40

Introduction Preview 00:41

Adding method to handle HTTP Post Request Preview 01:14

Implementing the Create User Request Model class Preview 03:17

Validating HTTP Request Body Preview 04:20

Application Layers Preview 02:48

Implementing Service Layer Class Preview 02:10

Create a Shared DTO Class Preview 03:15

Generate Unique Public User Id Preview 02:16

Adding Support for Spring Data JPA Preview 02:01

Implementing User Entity Class Preview 06:07

Implementing Spring Data JPA CRUD Repository Preview 02:34

Save User Details in Database Preview 11:15

Return Http Status Code Preview 02:29

Implementing Create User Response Model Preview 04:30

Add Spring Security to Users Microservice Preview 01:15

Add WebSecurity Configuration Preview 04:12

Encrypt User Password Preview 04:50

- Add Spring Security support to pom.xml

- Disable Spring Security in Main Application class

- Use BCryptPasswordEncoder to Encode Password

Allow only IP address of Zuul API Gateway Preview 02:15

Adding Support to Return JSON or XML Preview 04:59

Introduction Preview 01:10

Implementing LoginRequestModel Preview 01:21

AuthenticationFilter. Implementing attemptAuthentication() Preview 06:03

Implementing loadUserByUserName() Preview 11:37

AuthenticationFilter. Implementing successfulAuthentication(). Preview 13:12

Trying How User Login Works Preview 05:45

Customize User Authentication URL Preview 03:30

Important note Preview 00:03

Introduction to Spring Security on API Gateway Preview 01:53

Adding Support for Spring Security and JWT Tokens Preview 01:17

  • Create a new Spring Boot Project

  • Create a new RestController

  • Enable Eureka Discovery Client

  • Try how it works

Enable Web Security in Zuul Preview 04:29

Allow Access to Registration and Login Urls Preview 05:06

Implementing Authorization Filter Preview 08:43

Accessing Protected Microservices with Access Token Preview 05:22

  • Access Web Service Endpoint in /users

  • Access Web Service Endpoint in /account

Introduction Preview 03:10

Using Header Predicate Preview 04:04

Adding Support for JWT Token Validation Preview 01:51

Creating AuthorizationFilter class Preview 03:49

Assign Custom Filter to a Gateway Route Preview 01:12

Signup and Login Routes Preview 03:05

Reading Authorization HTTP Header Preview 07:42

Validating JWT Access Token Preview 07:27

Accessing Protected Microservices with Access Token Preview 06:39

Introduction Preview 01:02

Creating Global Pre Filter Preview 03:51

Accessing Request Path and HTTP Headers Preview 03:32

Trying how Pre Filter Works Preview 03:49

Creating Global Post Filter Preview 03:05

Trying how the Post Filter works Preview 02:38

Defining Filters in a Single Class Preview 06:41

Ordering Global Filters Preview 06:42

Trying how ordered filters work Preview 02:22

Introduction to Spring Cloud Config Server Preview 04:03

Create Your Own Config Server Preview 02:53

Create Private GitHub Repository Preview 02:24

Naming Property Files Served by Config Server Preview 02:32

Configure Config Server to Access Private GitHub Repository Preview 02:46

Adding Properties File to Git Repository Preview 03:16

Configure Users Microservice to be a Client of Config Server Preview 07:24

Make Zuul Gateway a Client of Config Server Preview 02:18

Introduction to Spring Cloud Bus Preview 03:52

Add Spring Cloud Bus & Actuator Dependencies Preview 02:27

Enable the /bus-refresh URL Endpoint Preview 01:47

Download and Run Rabbit MQ Preview 03:20

Rabbit MQ Default Connection Details Preview 02:15

Trying how Spring Cloud Bus Works Preview 08:37

Change default Rabbit MQ Password Preview 03:29

Introduction to Spring Cloud Config File System as a Backend Preview 00:45

Setting up File System Backend Preview 04:51

Previewing Values Returned by Config Server Preview 01:41

Trying how Microservices work Preview 02:38

Introduction to Spring Boot Actuator Preview 02:15

Add Spring Boot Actuator to API Gateway Preview 04:59

Trying How It Works Preview 05:02

Enable Actuator for Users Microservice Preview 05:51

Introduction Preview 01:00

Download and Install MySQL Preview 03:16

Start MySQL Server and Login Preview 06:14

Create MySQL Database And a New User Preview 06:25

Downloading and Installing MySQL Workbench Preview 03:02

Connect to MySQL Database using MySQL WorkBench Preview 05:26

MySQL WorkBench brief overview Preview 04:15

Configure MySQL Database Access Details Preview 09:48

Use H2 Console to Access MySQL Database Preview 02:48

Copy MySQL properties to a Config Server Preview 01:40

Introduction to Encryption and Decryption of Configuration Properties Preview 02:43

A note about Java Cryptography Extension(JCE) Preview 00:23

Add Java Cryptography Extension Preview 06:14

Symmetric Encryption of Properties Preview 08:50

Creating a Keystore for Asymmetric Encryption Preview 05:05

Asymmetric Encryption of Properties Preview 05:25

Introduction to Microservices Communication Preview 03:48

Albums Microservices Source Code Preview 00:08

Clone Source Code of Albums Microservice Preview 02:11

A walk through an Albums Microservice Preview 05:37

Implementing Get User Details Preview 05:43

Make Users Microservice call Albums Microservice Preview 10:25

Trying how it works Preview 03:59

Feign Web Service Client - Introduction Preview 01:32

Enable Feign in Spring Boot Project Preview 01:54

Create Feign Client Preview 05:07

Using Feign Client Preview 01:47

Trying How Feign Client Works Preview 03:11

Enable HTTP Requests Logging in Feign Client Preview 05:41

Handle FeignException Preview 04:36

Handle Response Errors with Feign Error Decoder Preview 12:57

Hystrix Circuit Breaker & Feign. Introduction. Preview 02:55

Configure Project to use Hystrix Circuit Breaker Preview 04:28

Trying How Hystrix Circuit Breaker & Feign work Preview 03:10

Error Handling with Feign Hystrix FallbackFactory Preview 11:05

Introduction to Distributed Tracing with Sleuth and Zipkin Preview 03:07

Add Spring Cloud Sleuth to Users Microservice Preview 04:12

Checking Trace ID and Span ID in a Console Preview 05:26

Startup Zipkin Server Preview 02:18

View Traces in Zipkin Preview 05:14

Introduction to Aggregating Log Files with ELK Stack Preview 02:04

Configure Microservices to Log into a File Preview 02:55

Download Logstash Preview 01:39

Configure Logstash to Read Log Files Preview 09:11

Download and Run Elasticsearch Preview 03:16

Run Search Query Preview 06:50

Download, Install and Run Kibana Preview 03:44

View Aggregated Logs in Kibana Preview 05:27

Configure Spring Security to Eureka Server Preview 02:15

Enable Web Security Preview 02:40

Configure Eureka Clients to use Username and Password Preview 03:10

Configure Eureka Service URL in Config Server Preview 04:19

Move Username and Password to Config Server Preview 04:00

Encrypting Username and Password Preview 06:03

Introduction to Running Microservices in Docker Containers Preview 07:59

Start up a new Linux Server on AWS EC2 Preview 14:56

Connect to EC2 Instance Preview 04:46

Docker Commands Used in this Video Course Preview 00:57

Install Docker on AWS EC2 Preview 01:51

Docker Hub Introduction Preview 01:57

Run RabbitMQ Docker Container Preview 09:12

Basic Docker Commands: Run, Stop, Start, Remove Containers and Images Preview 06:49

In this video lessons I explain how to use basic Docker commands to: 

  • Run a new Docker container,

  • Stop running Docker container,

  • Remove Docker container,

  • Remove Docker Image

You can use my Docker Commands Cheat Sheet for reference: http://appsdeveloperblog.com/docker-commands-cheat-sheet/

Create Config Server Docker Image Preview 09:48

Publish Config Server Docker Image to Docker Hub Preview 04:27

Run Config Server on EC2 from Docker Hub Preview 10:22

Start New EC2 Instance for Eureka Preview 03:23

Build Docker Image for Eureka Discovery Service Preview 04:01

Run Eureka in Docker container Preview 11:20

Elastic IP address for EC2 Instance Preview 04:41

Create Zuul Api Gateway Docker Image Preview 04:41

Run Zuul Api Gateway in Docker Container Preview 08:03

Run Elastic Search in Docker container Preview 05:55

Run Kibana in Docker Container Preview 06:34

Run Kibana and Elastic Search on the same Network Preview 04:31

Docker Image for Albums Microservice Preview 04:27

Run Albums Microservice Docker Image on EC2 Preview 10:49

Logstash Docker Image for Albums Microservice Preview 08:50

Run Logstash in Docker container Preview 04:34

Run MySQL in Docker Container Preview 08:37

Make MySQL Docker Container Persist Data on EC2 Preview 03:19

Build Users Microservice Docker Image Preview 04:22

Run Users Microservice in Docker container Preview 09:59

Run Logstash for Users Microservice Preview 07:51

Introduction Preview 05:09

Preparing Configuration for another environment Preview 08:31

Creating Beans Based on Spring Boot @Profile used Preview 11:32

Running Docker Container for Different Environments Preview 01:02

Introduction Preview 06:30

Pass Authorization Header to Downstream Microservice Preview 01:22

Add AuthorizationFilter to Users Microservice Preview 06:01

Configure HttpSecurity Preview 02:30

Trying how it works Preview 03:11

Introduction to Method-Level security Preview 04:55

Enable Method-Level Security Preview 02:00

@PreAuthorize annotation example Preview 03:30

Trying how @PreAuthorize annotation works Preview 03:02

@PostAuthorize annotation example Preview 07:11