Master Microservices with Spring Boot and Spring Cloud

An awesome journey from Restful Web Services to Microservices with Spring Boot and Spring Cloud

Developing RESTful web services is fun. The combination of Spring Boot, Spring Web MVC, Spring Web Services and JPA makes it even more fun. And its even more fun to create Microservices.

There are two parts to this course - RESTful web services and Microservices

Architectures are moving towards microservices. RESTful web services are the first step to developing great microservices. Spring Boot, in combination with Spring Web MVC (also called Spring REST) makes it easy to develop RESTful web services.

In the first part of the course, you will learn the basics of RESTful web services developing resources for a social media application. You will learn to implement these resources with multiple features - versioning, exception handling, documentation (Swagger), basic authentication (Spring Security), filtering and HATEOAS. You will learn the best practices in designing RESTful web services.

In this part of the course, you will be using Spring (Dependency Management), Spring MVC (or Spring REST), Spring Boot, Spring Security (Authentication and Authorization), Spring Boot Actuator (Monitoring), Swagger (Documentation), Maven (dependencies management), Eclipse (IDE), Postman (REST Services Client) and Tomcat Embedded Web Server. We will help you set up each one of these.

In the second part of the course, you will learn the basics of Microservices. You will understand how to implement microservices using Spring Cloud.

In this part of the course, you will learn to establish communication between microservices, enable load balancing, scaling up and down of microservices. You will also learn to centralize configuration of microservices with Spring Cloud Config Server. You will implement Eureka Naming Server and Distributed tracing with Spring Cloud Sleuth and Zipkin. You will create fault toleranct microservices with Zipkin.

Step wise Details

RESTful Web Services

  • Step 01 - Initializing a RESTful Services Project with Spring Boot
  • Step 02 - Understanding the RESTful Services we would create in this course
  • Step 03 - Creating a Hello World Service
  • Step 04 - Enhancing the Hello World Service to return a Bean
  • Step 05 - Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet - What's happening in the background?
  • Step 06 - Enhancing the Hello World Service with a Path Variable
  • Step 07 - Creating User Bean and User Service
  • Step 08 - Implementing GET Methods for User Resource
  • Step 09 - Implementing POST Method to create User Resource
  • Step 10 - Enhancing POST Method to return correct HTTP Status Code and Location URI
  • Step 11 - Implementing Exception Handling - 404 Resource Not Found
  • Step 12 - Implementing Generic Exception Handling for all Resources
  • Step 13 - Exercise : User Post Resource and Exception Handling
  • Step 14 - Implementing DELETE Method to delete a User Resource
  • Step 15 - Implementing Validations for RESTful Services
  • Step 16 - Implementing HATEOAS for RESTful Services
  • Step 17 - Overview of Advanced RESTful Service Features
  • Step 18 - Internationalization for RESTful Services
  • Step 19 - Content Negotiation - Implementing Support for XML
  • Step 20 - Configuring Auto Generation of Swagger Documentation
  • Step 21 - Introduction to Swagger Documentation Format
  • Step 22 - Enhancing Swagger Documentation with Custom Annotations
  • Step 23 - Monitoring APIs with Spring Boot Actuator
  • Step 24 - Implementing Static Filtering for RESTful Service
  • Step 25 - Implementing Dynamic Filtering for RESTful Service
  • Step 26 - Versioning RESTful Services - Basic Approach with URIs
  • Step 27 - Versioning RESTful Services - Header and Content Negotiation Approaches
  • Step 28 - Implementing Basic Authentication with Spring Security
  • Step 29 - Overview of Connecting RESTful Service to JPA
  • Step 30 - Creating User Entity and some test data
  • Step 31 - Updating GET methods on User Resource to use JPA
  • Step 32 - Updating POST and DELETE methods on User Resource to use JPA
  • Step 33 - Creating Post Entity and Many to One Relationship with User Entity
  • Step 34 - Implementing a GET service to retrieve all Posts of a User
  • Step 35 - Implementing a POST service to create a Post for a User
  • Step 36 - Richardson Maturity Model
  • Step 37 - RESTful Services Best Practices

Microservices with Spring Cloud

  • Step 01 - Part 1 - Introduction to Limits Microservice and Spring Cloud Config Server
  • Step 01 - Part 2 - Setting up Limits Microservice
  • Step 02 - Creating a hard coded limits service
  • Step 03 - Enhance limits service to pick up configuration from application properties
  • Step 04 - Setting up Spring Cloud Config Server
  • Step 05 - Installing Git
  • Step 06 - Creating Local Git Repository
  • Step 07 - Connect Spring Cloud Config Server to Local Git Repository
  • Step 08 - Configuration for Multiple Environments in Git Repository
  • Step 09 - Connect Limits Service to Spring Cloud Config Server
  • Step 10 - Configuring Profiles for Limits Service
  • Step 11 - A review of Spring Cloud Config Server
  • Step 12 - Introduction to Currency Conversion and Currency Exchange Microservices
  • Step 13 - Setting up Currency Exchange Microservice
  • Step 14 - Create a simple hard coded currency exchange service
  • Step 15 - Setting up Dynamic Port in the the Response
  • Step 16 - Configure JPA and Initialized Data
  • Step 17 - Create a JPA Repository
  • Step 18 - Setting up Currency Conversion Microservice
  • Step 19 - Creating a service for currency conversion
  • Step 20 - Invoking Currency Exchange Microservice from Currency Conversion Microservice
  • Step 21 - Using Feign REST Client for Service Invocation
  • Step 22 - Setting up client side load balancing with Ribbon
  • Step 23 - Running client side load balancing with Ribbon
  • Step 24 - Understand the need for a Naming Server
  • Step 25 - Setting up Eureka Naming Server
  • Step 26 - Connecting Currency Conversion Microservice to Eureka
  • Step 27 - Connecting Currency Exchange Microservice to Eureka
  • Step 28 - Distributing calls using Eureka and Ribbon
  • Step 29 - A review of implementing Eureka, Ribbon and Feign
  • Step 30 - Introduction to API Gateways
  • Step 31 - Setting up Zuul API Gateway
  • Step 32 - Implementing Zuul Logging Filter
  • Step 33 - Executing a request through Zuul API Gateway
  • Step 34 - Setting up Zuul API Gateway between microservice invocations
  • Step 35 - Introduction to Distributed Tracing
  • Step 36 - Implementing Spring Cloud Sleuth
  • Step 37 - Introduction to Distributed Tracing with Zipkin
  • Step 38 - Installing Rabbit MQ
  • Step 39 - Setting up Distributed Tracing with Zipkin
  • Step 40 - Connecting microservices to Zipkin
  • Step 41 - Using Zipkin UI Dashboard to trace requests
  • Step 42 - Understanding the need for Spring Cloud Bus
  • Step 43 - Implementing Spring Cloud Bus
  • Step 44 - Fault Tolerance with Hystrix

Your Instructor


in28Minutes is the world's leading course provider for Spring Framework with more than 100,000 students pursuing our courses on in28Minutes Platform(, Udemy and YouTube.

Brain child of Ranga Karanam, an Architect with 15 Years of Java programming and design with major banking clients across the world, we started in28Minutes with the aim to create Hands-on Courses with Real World Projects.

We use 80-20 Rule. We discuss 20% things used 80% of time in depth. We touch upon other things briefly equipping you with enough knowledge to find out more on your own.

We love open source and therefore, All our code is open source too and available on Github.

Course Curriculum

  Restful Web Services with Spring Boot
Available in days
days after you enroll
  Microservices with Spring Cloud - V2
Available in days
days after you enroll
  Docker and Microservices
Available in days
days after you enroll
  Kubernetes and Microservices
Available in days
days after you enroll
  Microservices with Spring Cloud - OLD - V1
Available in days
days after you enroll

Frequently Asked Questions

When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.

This course is closed for enrollment.