Home Courses Instructor Labs

Build RESTful Microservices with Spring Boot and Spring Cloud

(44 Ratings) 3235 Students Enrolled
Created By Andrew Davidson Last Updated Mon, 18-May-2020 English
  • Course Duration
    16 Hours
  • Mode of Training
    Self-Paced
  • Lessons
    207 Lessons
  • Placement Assistance
    Guaranteed
$ 199.99 $ 19.99 90% off 100% Money Back Guarantee
12k+ satisfied learners Read Reviews
What Will I Learn?
  • Learn how to build and run RESTful Microservices
  • Implement User Authentication and User Authorization
  • Learn how to use JPA to persist data into a Database
  • Learn to install MySQL Server and persist data into MySQL
  • Learn to use HTTP Postman, Spring Initializer and Spring Tool Suite
  • Learn how to run Microservices in Docker Containers
  • Use Spring Security and Spring Boot Acutator
  • Spring Cloud Bus and Rabbit MQ

Requirements
  • Basic Knowledge on Java Programming
+ View More
Description

This course is designed for the one who wants to learn  RESTful Web Services and Microservices from the beginning. The course is designed in detail by step-by-step manner. Through this course, you will learn how to run Microservices on your own machine and also in Docker Container on AWS EC2 Linux Machines.

You tend to learn the following concepts in this course:

  • Spring Cloud Config Server
  • RESTful Microservices
  • Load Balancer
  • Eureka Discovery Service
  • Zuul API Gateway
  • Spring Boot Actuator
  • Spring Cloud Bus and Rabbit MQ
  • Spring Security and JWT
  • MySQL Database Server
  • H2 in-memory Database and a Database console
  • Spring Tool Suite
  • Spring Initializer
  • Spring Data JPA 
  • Postman HTTP Client

You will also learn how to implement RESTful API features like

  • User Authentication (Login) and 
  • User Authorization (Registration)

And also learn how to 

  • Trace HTTP Requests with Spring Cloud Sleuth and Zipkin
  • Start up AWS EC2 Linux Machine
  • Install Docker and create Docker images
  • Run Microservices in Docker containers


Curriculum For This Course
207 Lessons 16 Hours
  • Course Overview 00:07:24 Preview
  • A few suggestions 00:03:29
  • What is a Microservice? 00:07:11 Preview
  • Sample Microservices Architecture 00:07:20
  • Download and Install Postman HTTP Client 00:02:09
  • Postman Overview 00:10:41
  • Resource and Collection URIs 00:11:12
  • HTTP Methods: GET, POST, DELETE and PUT 00:03:45
  • HTTP Headers: Accept and Content Type 00:04:13
  • Install Java Platform(JDK) 00:05:48
  • Download and Install Spring Tool Suite(STS) 00:01:56
  • Introduction 00:00:41 Preview
  • Creating a New Project 00:06:13
  • Creating a new Spring project using Spring Boot Initializr 00:04:43 Preview
  • Create Users Rest Controller class 00:02:46
  • Adding Methods to Handle POST, GET, PUT, DELETE HTTP requests 00:03:13
  • Running Web Service Application 00:04:36
  • Reading Path Variables with @PathVariable annotaion 00:03:32
  • Reading Query String Request Parameters 00:04:52
  • Making Parameters Optional or Required 00:04:36
  • Returning Java Object as Return Value 00:04:11
  • Returning Object as JSON or XML Representation 00:05:36
  • Set Response Status Code 00:04:58
  • Reading HTTP POST Request Body. The @RequestBody annotation. 00:08:13
  • Validating HTTP POST Request Body 00:08:56
  • Store Users Temporary 00:04:50
  • Handle HTTP PUT Request 00:09:07
  • Handle HTTP Delete Request 00:04:52
  • Handle an Exception 00:07:44
  • Return Custom Error Message Object 00:05:35
  • Handle a Specific Exception 00:03:06
  • Throw and Handle You Own Custom Exception 00:04:14
  • Catch More Than One Exception with One Method 00:02:55
  • Dependency Injection: Create and Autowire a Service Layer Class 00:10:54
  • Constructor Based Dependency Injection 00:06:25
  • Run Web Service as a Standalone Application 00:04:52
  • Introduction to Eureka Discovery Service 00:04:18 Preview
  • Startup Eureka Service Discovery 00:05:39
  • Introduction to Building a Users Microservice 00:02:11
  • Users Microservice - Create new Spring Boot Project 00:03:40
  • Enable Spring Discovery Cloud Client 00:03:02
  • Create Users Rest Controller 00:02:04
  • Access Users Web Service Endpoint via Eureka Discovery Service 00:02:59
  • Exercise-Create Account Management Microservice
  • Introduction to Building an Account Management Microservice 00:01:34
  • Password Reset - Create a new Spring Boot Project 00:03:59
  • Access Account Management Microservice via Eureka Discovery Service 00:02:56
  • Introduction to Zuul API Gateway 00:03:24
  • Create a ZUUL API Gateway Project 00:03:37
  • Access Microservices via API Gateway 00:04:14
  • Load Balancer - Introduction 00:00:50
  • Starting Up More Microservices 00:08:59
  • Trying How Load Balancer Works 00:04:48
  • H2 In-memory Database. Introduction. 00:03:20
  • H2 Database Console Overview 00:07:41
  • Adding Support for the H2 Database 00:04:41
  • Adding method to handle HTTP Post Request 00:01:15
  • Implementing the Create User Request Model class 00:03:18
  • Validating HTTP Request Body 00:04:21
  • Application Layers 00:02:48
  • Implementing Service Layer Class 00:02:11
  • Create a Shared DTO Class 00:03:15
  • Generate Unique Public User Id 00:02:16
  • Adding Support for Spring Data JPA 00:02:02
  • Implementing User Entity Class 00:06:08
  • Implementing Spring Data JPA CRUD Repository 00:02:35
  • Return Http Status Code 00:02:29
  • Implementing Create User Response Model 00:04:30
  • Add Spring Security to Users Microservice 00:01:16
  • Add WebSecurity Configuration 00:04:12
  • Encrypt User Password 00:04:51
  • Allow only IP address of Zuul API Gateway 00:02:15
  • Adding Support to Return JSON or XML 00:05:00
  • Introduction 00:01:11
  • Implementing LoginRequestModel 00:01:21
  • AuthenticationFilter. Implementing attemptAuthentication() 00:06:03
  • Implementing loadUserByUserName() 00:11:38
  • AuthenticationFilter. Implementing successfulAuthentication(). 00:13:12
  • Trying How User Login Works 00:05:45
  • Customize User Authentication URL 00:03:30
  • Introduction to Spring Security on API Gateway 00:01:54
  • Adding Support for Spring Security and JWT Tokens 00:01:18
  • Enable Web Security in Zuul 00:04:30
  • Allow Access to Registration and Login Urls 00:05:06
  • Implementing Authorization Filter 00:08:43
  • Accessing Protected Microservices with Access Token 00:05:22
  • Introduction to Spring Cloud Config Server 00:04:03
  • Create Your Own Config Server 00:02:53
  • Create Private GitHub Repository 00:02:24
  • Naming Property Files Served by Config Server 00:02:33
  • Configure Config Server to Access Private GitHub Repository 00:02:46
  • Adding Properties File to Git Repository 00:03:16
  • Configure Users Microservice to be a Client of Config Server 00:07:23
  • Make Zuul Gateway a Client of Config Server 00:02:18
  • Introduction to Spring Cloud Bus 00:03:52
  • Add Spring Cloud Bus & Actuator Dependencies 00:02:27
  • Enable the /bus-refresh URL Endpoint 00:01:47
  • Download and Run Rabbit MQ 00:03:20
  • Rabbit MQ Default Connection Details 00:02:16
  • Trying how Spring Cloud Bus Works 00:08:37
  • Change default Rabbit MQ Password 00:03:29
  • Introduction to Spring Cloud Config File System as a Backend 00:00:45
  • Setting up File System Backend 00:04:52
  • Previewing Values Returned by Config Server 00:01:42
  • Trying how Microservices work 00:02:38
  • Introduction 00:02:32
  • Shared and a Microservice specific properties 00:07:01
  • Introduction to Spring Boot Actuator 00:02:16
  • Add Spring Boot Actuator to API Gateway 00:05:00
  • Trying How It Works 00:05:02
  • Enable Actuator for Users Microservice 00:05:51
  • Introduction 00:01:00
  • Download and Install MySQL 00:03:16
  • Start MySQL Server and Login 00:06:14
  • Create MySQL Database And a New User 00:06:26
  • Downloading and Installing MySQL Workbench 00:03:03
  • Connect to MySQL Database using MySQL WorkBench 00:05:27
  • MySQL WorkBench brief overview 00:04:16
  • Configure MySQL Database Access Details 00:09:48
  • Use H2 Console to Access MySQL Database 00:02:48
  • Copy MySQL properties to a Config Server 00:01:41
  • Introduction to Encryption and Decryption of Configuration Properties 00:02:44
  • Add Java Cryptography Extension 00:06:15
  • Symmetric Encryption of Properties 00:08:50
  • Creating a Keystore for Asymmetric Encryption 00:05:06
  • Asymmetric Encryption of Properties 00:05:26
  • Introduction to Microservices Communication 00:03:48
  • Albums Microservices Source code
  • Clone Source Code of Albums Microservice 00:02:11
  • A walk through an Albums Microservice 00:05:38
  • Implementing Get User Details 00:05:44
  • Make Users Microservice call Albums Microservice 00:10:26
  • Trying how it works 00:04:00
  • Feign Web Service Client - Introduction 00:01:33
  • Enable Feign in Spring Boot Project 00:01:55
  • Create Feign Client 00:05:07
  • Using Feign Client 00:01:47
  • Trying How Feign Client Works 00:03:12
  • Enable HTTP Requests Logging in Feign Client 00:05:41
  • Handle FeignException 00:04:36
  • Handle Response Errors with Feign Error Decoder 00:12:58
  • Hystrix Circuit Breaker & Feign. Introduction. 00:02:56
  • Configure Project to use Hystrix Circuit Breaker 00:04:28
  • Trying How Hystrix Circuit Breaker & Feign work 00:03:10
  • Error Handling with Feign Hystrix FallbackFactory 00:11:05
  • Introduction to Distributed Tracing with Sleuth and Zipkin 00:03:07
  • Add Spring Cloud Sleuth to Users Microservice 00:04:12
  • Checking Trace ID and Span ID in a Console 00:05:27
  • Startup Zipkin Server 00:02:19
  • View Traces in Zipkin 00:05:14
  • Introduction to Aggregating Log Files with ELK Stack 00:02:04
  • Configure Microservices to Log into a File 00:02:55
  • Download Logstash 00:01:40
  • Configure Logstash to Read Log Files 00:09:11
  • Download and Run Elasticsearch 00:03:16
  • Run Search Query 00:06:50
  • Download, Install and Run Kibana 00:03:44
  • View Aggregated Logs in Kibana 00:05:28
  • Configure Spring Security to Eureka Server 00:02:15
  • Enable Web Security 00:02:40
  • Configure Eureka Clients to use Username and Password 00:03:10
  • Configure Eureka Service URL in Config Server 00:04:20
  • Move Username and Password to Config Server 00:04:01
  • Encrypting Username and Password 00:06:04
  • Introduction to Running Microservices in Docker Containers 00:07:59
  • Start up a new Linux Server on AWS EC2 00:14:57
  • Connect to EC2 Instance 00:04:47
  • Docker command used in the course
  • Install Docker on AWS EC2 00:01:51
  • Docker Hub Introduction 00:01:58
  • Run RabbitMQ Docker Container 00:09:13
  • Basic Docker Commands: Run, Stop, Start, Remove Containers and Images 00:06:50
  • Create Config Server Docker Image 00:09:48
  • Publish Config Server Docker Image to Docker Hub 00:04:28
  • Run Config Server on EC2 from Docker Hub 00:10:28
  • Start New EC2 Instance for Eureka 00:03:24
  • Build Docker Image for Eureka Discovery Service 00:04:01
  • Run Eureka in Docker container 00:11:21
  • Elastic IP address for EC2 Instance 00:04:42
  • Create Zuul Api Gateway Docker Image 00:04:41
  • Run Zuul Api Gateway in Docker Container 00:08:03
  • Run Elastic Search in Docker container 00:05:55
  • Run Kibana in Docker Container 00:06:34
  • Run Kibana and Elastic Search on the same Network 00:04:31
  • Docker Image for Albums Microservice 00:04:27
  • Run Albums Microservice Docker Image on EC2 00:10:50
  • Logstash Docker Image for Albums Microservice 00:08:50
  • Run Logstash in Docker container 00:04:34
  • Run MySQL in Docker Container 00:08:37
  • Make MySQL Docker Container Persist Data on EC2 00:03:20
  • Build Users Microservice Docker Image 00:04:23
  • Run Users Microservice in Docker container 00:09:59
  • Run Logstash for Users Microservice 00:07:51
  • Introduction 00:05:10
  • Preparing Configuration for another environment 00:08:32
  • Creating Beans Based on Spring Boot @Profile used 00:11:33
  • Running Docker Container for Different Environments 00:01:02
  • Introduction 00:06:30
  • Pass Authorization Header to Downstream Microservice 00:01:22
  • Add AuthorizationFilter to Users Microservice 00:06:02
  • Configure HttpSecurity 00:02:31
  • Trying how it works 00:03:11
  • Introduction to Method-Level security 00:04:55
  • Enable Method-Level Security 00:02:00
  • @PreAuthorize annotation example 00:03:31
  • Trying how @PreAuthorize annotation works 00:03:02
  • @PostAuthorize annotation example 00:07:11

Build RESTful Microservices with Spring Boot and Spring Cloud