Spring Boot Microservices and Spring Cloud

Learn to build Microservices with Spring Boot and Spring Cloud. Use Docker and publish to AWS.
Spring Boot Microservices and Spring Cloud
File Size :
8.85 GB
Total length :
19h 49m



Sergey Kargopolov


Last update

Last updated 11/2022



Spring Boot Microservices and Spring Cloud

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

Spring Boot Microservices and Spring Cloud


Know Java
Mac computer


This video course is for Beginners who have never build RESTful Web Services and Microservices before. It will guide you step-by-step through basics and will help you create and run RESTful Microservices from scratch. You will learn how to run Microservices on your own developer’s machine as well as in Docker Containers on AWS EC2 Linux machines.By the end of this course, you will have your own RESTful Spring Boot Microservices built and running in Spring Cloud. You will learn how to create and run your own: RESTful Microservices, Eureka Discovery Service, Zuul API Gateway,Spring Cloud API Gateway,Load Balancer, Spring Cloud Config Server, You will learn to use:Spring Cloud Bus and Rabbit MQ, Spring Boot ActuatorYou will also learn how to implement for your REST API features like: User Authentication(Login) and, User Authorization(Registration)You will learn to use: Spring Security and JWTYou will learn how to use: Spring Data JPA to store user details in a database, H2 in-memory database and a database console, MySQL database server, Postman HTTP Client, Spring Tool Suite, Spring InitializerThis course also covers how to: Trace HTTP Requests with Spring Cloud Sleuth and Zipkin(Distributed tracing)Aggregate log files in one place(Centralized logging) with ELK stack(Logstash, Elasticsearch, Kibana).You will also learn how to: Start up AWS EC2 Linux machine, Install Docker, Create Docker images, Run Microservices in Docker containers on multiple EC2 Linux machines in Amazon AWS Cloud.


Section 1: Introduction

Lecture 1 Source Code

Lecture 2 Course Overview

Lecture 3 A few suggestions

Lecture 4 What is a Microservice?

Lecture 5 Sample Microservices Architecture

Lecture 6 Download and Install Postman HTTP Client

Lecture 7 Postman Overview

Lecture 8 Resource and Collection URIs

Lecture 9 HTTP Methods: GET, POST, DELETE and PUT

Lecture 10 HTTP Headers: Accept and Content Type

Section 2: Setting up Development Environment

Lecture 11 Install Java Platform(JDK)

Lecture 12 Download and Install Spring Tool Suite(STS)

Section 3: Building RESTful Web Services – A Quick Start. (Optional)

Lecture 13 Introduction

Lecture 14 Creating a New Project

Lecture 15 Creating a new Spring project using Spring Boot Initializr

Lecture 16 Create Users Rest Controller class

Lecture 17 Adding Methods to Handle POST, GET, PUT, DELETE HTTP requests

Lecture 18 Running Web Service Application

Lecture 19 Reading Path Variables with @PathVariable annotaion

Lecture 20 Reading Query String Request Parameters

Lecture 21 Making Parameters Optional or Required

Lecture 22 Returning Java Object as Return Value

Lecture 23 Returning Object as JSON or XML Representation

Lecture 24 Set Response Status Code

Lecture 25 Reading HTTP POST Request Body. The @RequestBody annotation.

Lecture 26 Validating HTTP POST Request Body

Lecture 27 Store Users Temporary

Lecture 28 Handle HTTP PUT Request

Lecture 29 Handle HTTP Delete Request

Lecture 30 Handle an Exception

Lecture 31 Return Custom Error Message Object

Lecture 32 Handle a Specific Exception

Lecture 33 Throw and Handle You Own Custom Exception

Lecture 34 Catch More Than One Exception with One Method

Lecture 35 Dependency Injection: Create and Autowire a Service Layer Class

Lecture 36 Constructor Based Dependency Injection

Lecture 37 Run Web Service as a Standalone Application

Section 4: Eureka Discovery Service – A Quick Start

Lecture 38 Introduction to Eureka Discovery Service

Lecture 39 Startup Eureka Service Discovery

Lecture 40 Troubleshooting

Section 5: Users Microservice – A Quick Start

Lecture 41 Introduction to Building a Users Microservice

Lecture 42 Users Microservice – Create new Spring Boot Project

Lecture 43 Enable Eureka Client

Lecture 44 Create Users Rest Controller

Lecture 45 Access Users Web Service Endpoint via Eureka Discovery Service

Lecture 46 Exercise – Create Account Management Microservice

Section 6: Account Management Microservice – A Quick Start

Lecture 47 Introduction to Building an Account Management Microservice

Lecture 48 Create a new Spring Boot Project

Lecture 49 Access Account Management Microservice via Eureka Discovery Service

Section 7: Zuul API Gateway – A Quick Start

Lecture 50 Important note

Lecture 51 Introduction to Zuul API Gateway

Lecture 52 Create a ZUUL API Gateway Project

Lecture 53 Access Microservices via API Gateway

Section 8: Zuul as a Load Balancer – A Quick Start

Lecture 54 Important note

Lecture 55 Load Balancer – Introduction

Lecture 56 Starting Up More Microservices

Lecture 57 Trying How Load Balancer Works

Section 9: Spring Cloud API Gateway

Lecture 58 Important Note

Lecture 59 Introduction

Lecture 60 Creating API Gateway Project

Lecture 61 Automatic Mapping of Gateway Routes

Lecture 62 Manually Configuring API Gateway Routes

Lecture 63 Trying how it works

Lecture 64 Rewriting URL Path

Lecture 65 Automatic & Manual Routing

Lecture 66 Build-In Predicate Factories

Lecture 67 Gateway Filters

Section 10: Spring Cloud API Gateway as a Load Balancer

Lecture 68 Starting Up More Microservices

Lecture 69 Trying How Load Balancer Works

Section 11: H2 In-Memory Database

Lecture 70 H2 In-memory Database. Introduction.

Lecture 71 H2 Database Console Overview

Lecture 72 Adding Support for the H2 Database

Section 12: Users Microservice – Implementing User Sign up

Lecture 73 Introduction

Lecture 74 Adding method to handle HTTP Post Request

Lecture 75 Implementing the Create User Request Model class

Lecture 76 Validating HTTP Request Body

Lecture 77 Application Layers

Lecture 78 Implementing Service Layer Class

Lecture 79 Create a Shared DTO Class

Lecture 80 Generate Unique Public User Id

Lecture 81 Adding Support for Spring Data JPA

Lecture 82 Implementing User Entity Class

Lecture 83 Implementing Spring Data JPA CRUD Repository

Lecture 84 Save User Details in Database

Lecture 85 Return Http Status Code

Lecture 86 Implementing Create User Response Model

Lecture 87 Add Spring Security to Users Microservice

Lecture 88 Add WebSecurity Configuration

Lecture 89 Encrypt User Password

Lecture 90 Allow only IP address of Zuul API Gateway

Lecture 91 Adding Support to Return JSON or XML

Section 13: Users Microservice – Implementing User Login

Lecture 92 Introduction

Lecture 93 Implementing LoginRequestModel

Lecture 94 AuthenticationFilter. Implementing attemptAuthentication()

Lecture 95 Implementing loadUserByUserName()

Lecture 96 AuthenticationFilter. Implementing successfulAuthentication().

Lecture 97 Trying How User Login Works

Lecture 98 Customize User Authentication URL

Section 14: Enable Spring Security in Zuul API Gateway

Lecture 99 Important note

Lecture 100 Introduction to Spring Security on API Gateway

Lecture 101 Adding Support for Spring Security and JWT Tokens

Lecture 102 Enable Web Security in Zuul

Lecture 103 Allow Access to Registration and Login Urls

Lecture 104 Implementing Authorization Filter

Lecture 105 Accessing Protected Microservices with Access Token

Section 15: Spring Cloud API Gateway – Creating a Custom Filter.

Lecture 106 Introduction

Lecture 107 Using Header Predicate

Lecture 108 Adding Support for JWT Token Validation

Lecture 109 Creating AuthorizationFilter class

Lecture 110 Assign Custom Filter to a Gateway Route

Lecture 111 Signup and Login Routes

Lecture 112 Reading Authorization HTTP Header

Lecture 113 Validating JWT Access Token

Lecture 114 Accessing Protected Microservices with Access Token

Section 16: Spring Cloud API Gateway Global Filters

Lecture 115 Introduction

Lecture 116 Creating Global Pre Filter

Lecture 117 Accessing Request Path and HTTP Headers

Lecture 118 Trying how Pre Filter Works

Lecture 119 Creating Global Post Filter

Lecture 120 Trying how the Post Filter works

Lecture 121 Defining Filters in a Single Class

Lecture 122 Ordering Global Filters

Lecture 123 Trying how ordered filters work

Section 17: Spring Cloud Config Server – Git Backend

Lecture 124 Introduction to Spring Cloud Config Server

Lecture 125 Create Your Own Config Server

Lecture 126 Create Private GitHub Repository

Lecture 127 Naming Property Files Served by Config Server

Lecture 128 Configure Config Server to Access Private GitHub Repository

Lecture 129 Adding Properties File to Git Repository

Lecture 130 Configure Users Microservice to be a Client of Config Server

Lecture 131 Make Zuul Gateway a Client of Config Server

Section 18: Spring Cloud Bus – A Quick Start

Lecture 132 Introduction to Spring Cloud Bus

Lecture 133 Add Spring Cloud Bus & Actuator Dependencies

Lecture 134 Enable the /bus-refresh URL Endpoint

Lecture 135 Download and Run Rabbit MQ

Lecture 136 Rabbit MQ Default Connection Details

Lecture 137 Trying how Spring Cloud Bus Works

Lecture 138 Change default Rabbit MQ Password

Section 19: Spring Cloud Config – File System Backend

Lecture 139 Introduction to Spring Cloud Config File System as a Backend

Lecture 140 Setting up File System Backend

Lecture 141 Previewing Values Returned by Config Server

Lecture 142 Trying how Microservices work

Section 20: Spring Cloud Config – Configuration for Multiple Microservices

Lecture 143 Introduction

Lecture 144 Shared and a Microservice specific properties

Section 21: Spring Boot Actuator – A Quick Start

Lecture 145 Introduction to Spring Boot Actuator

Lecture 146 Add Spring Boot Actuator to API Gateway

Lecture 147 Trying How It Works

Lecture 148 Enable Actuator for Users Microservice

Section 22: Using MySQL Instead of In-Memory Database

Lecture 149 Introduction

Lecture 150 Download and Install MySQL

Lecture 151 Start MySQL Server and Login

Lecture 152 Create MySQL Database And a New User

Lecture 153 Downloading and Installing MySQL Workbench

Lecture 154 Connect to MySQL Database using MySQL WorkBench

Lecture 155 MySQL WorkBench brief overview

Lecture 156 Configure MySQL Database Access Details

Lecture 157 Use H2 Console to Access MySQL Database

Lecture 158 Copy MySQL properties to a Config Server

Section 23: Encryption and Decryption

Lecture 159 Introduction to Encryption and Decryption of Configuration Properties

Lecture 160 A note about Java Cryptography Extension(JCE)

Lecture 161 Add Java Cryptography Extension

Lecture 162 Symmetric Encryption of Properties

Lecture 163 Creating a Keystore for Asymmetric Encryption

Lecture 164 Asymmetric Encryption of Properties

Section 24: Microservices Communication

Lecture 165 Introduction to Microservices Communication

Lecture 166 Albums Microservices Source Code

Lecture 167 Clone Source Code of Albums Microservice

Lecture 168 A walk through an Albums Microservice

Lecture 169 Implementing Get User Details

Lecture 170 Make Users Microservice call Albums Microservice

Lecture 171 Trying how it works

Lecture 172 Feign Web Service Client – Introduction

Lecture 173 Enable Feign in Spring Boot Project

Lecture 174 Create Feign Client

Lecture 175 Using Feign Client

Lecture 176 Trying How Feign Client Works

Lecture 177 Enable HTTP Requests Logging in Feign Client

Lecture 178 Handle FeignException

Lecture 179 Handle Response Errors with Feign Error Decoder

Section 25: Microservices communication – Hystrix Circuit Breaker

Lecture 180 Introduction

Lecture 181 Configure Project to use Hystrix Circuit Breaker

Lecture 182 Trying How Hystrix Circuit Breaker & Feign work

Lecture 183 Error Handling with Feign Hystrix FallbackFactory

Section 26: Microservices communication. Resilience4j – Circuit Breaker.

Lecture 184 Introduction

Lecture 185 Removing Hystrix Circuit Breaker

Lecture 186 Adding Resilience4j

Lecture 187 Actuator /health Endpoint

Lecture 188 Feign Client & Circuit Breaker Fallback method

Lecture 189 Circuit Breaker configuration properties

Lecture 190 Configure Access to Actuator endpoints

Lecture 191 Monitoring Circuit Breaker events in Actuator

Section 27: Microservices communication. Resilience4j – Retry.

Lecture 192 @Retry annotation

Lecture 193 Aspect Order

Lecture 194 Configuration properties

Lecture 195 Trying how it works

Section 28: Distributed Tracing with Sleuth and Zipkin

Lecture 196 Introduction to Distributed Tracing with Sleuth and Zipkin

Lecture 197 Add Spring Cloud Sleuth to Users Microservice

Lecture 198 Checking Trace ID and Span ID in a Console

Lecture 199 Startup Zipkin Server

Lecture 200 View Traces in Zipkin

Section 29: Aggregating Log Files with ELK Stack

Lecture 201 Introduction to Aggregating Log Files with ELK Stack

Lecture 202 Configure Microservices to Log into a File

Lecture 203 Download Logstash

Lecture 204 Configure Logstash to Read Log Files

Lecture 205 [New]Download and Run Elasticsearch with Security Enabled

Lecture 206 [New]Configure Elasticsearch Security in Logstash

Lecture 207 Run Search Query

Lecture 208 [Updated]Download, Install and Run Kibana

Lecture 209 [Updated]View Aggregated Logs in Kibana

Section 30: Secure Eureka Dashboard

Lecture 210 Configure Spring Security to Eureka Server

Lecture 211 Enable Web Security

Lecture 212 Configure Eureka Clients to use Username and Password

Lecture 213 Configure Eureka Service URL in Config Server

Lecture 214 Move Username and Password to Config Server

Lecture 215 Encrypting Username and Password

Section 31: Running Microservices in Docker Containers to AWS EC2

Lecture 216 Introduction to Running Microservices in Docker Containers

Lecture 217 Start up a new Linux Server on AWS EC2

Lecture 218 Connect to EC2 Instance

Lecture 219 Docker Commands Used in this Video Course

Lecture 220 Install Docker on AWS EC2

Lecture 221 Docker Hub Introduction

Lecture 222 Run RabbitMQ Docker Container

Lecture 223 Basic Docker Commands: Run, Stop, Start, Remove Containers and Images

Lecture 224 Create Config Server Docker Image

Lecture 225 Publish Config Server Docker Image to Docker Hub

Lecture 226 Run Config Server on EC2 from Docker Hub

Lecture 227 Start New EC2 Instance for Eureka

Lecture 228 Build Docker Image for Eureka Discovery Service

Lecture 229 Run Eureka in Docker container

Lecture 230 Elastic IP address for EC2 Instance

Lecture 231 Create Zuul Api Gateway Docker Image

Lecture 232 Run Zuul Api Gateway in Docker Container

Lecture 233 Run Elastic Search in Docker container

Lecture 234 Run Kibana in Docker Container

Lecture 235 Run Kibana and Elastic Search on the same Network

Lecture 236 Docker Image for Albums Microservice

Lecture 237 Run Albums Microservice Docker Image on EC2

Lecture 238 Logstash Docker Image for Albums Microservice

Lecture 239 Run Logstash in Docker container

Lecture 240 Run MySQL in Docker Container

Lecture 241 Make MySQL Docker Container Persist Data on EC2

Lecture 242 Build Users Microservice Docker Image

Lecture 243 Run Users Microservice in Docker container

Lecture 244 Run Logstash for Users Microservice

Section 32: Multiple Environments: Dev, Prod.

Lecture 245 Introduction

Lecture 246 Preparing Configuration for another environment

Lecture 247 Creating Beans Based on Spring Boot @Profile used

Lecture 248 Running Docker Container for Different Environments

Section 33: Downstream Microservice and Method-Level Security

Lecture 249 Introduction

Lecture 250 Pass Authorization Header to Downstream Microservice

Lecture 251 Add AuthorizationFilter to Users Microservice

Lecture 252 Configure HttpSecurity

Lecture 253 Trying how it works

Lecture 254 Introduction to Method-Level security

Lecture 255 Enable Method-Level Security

Lecture 256 @PreAuthorize annotation example

Lecture 257 Trying how @PreAuthorize annotation works

Lecture 258 @PostAuthorize annotation example

Section 34: What’s next

Lecture 259 Bonus lecture

Beginner Java developers,Java developers interested in learning how to build Spring Boot Microservices

Course Information:

Udemy | English | 19h 49m | 8.85 GB
Created by: Sergey Kargopolov

You Can See More Courses in the Developer >> Greetings from CourseDown.com

New Courses

Scroll to Top