Master Microservices with Spring Boot and Spring Cloud [Video]

More Information
Learn
  • You will learn how to develop and design RESTful web services with Spring Boot and be able to develop Microservices with Spring Boot and Spring Cloud. 
  • You will find out how to implement exception handling, validation, HATEOAS and filtering for RESTful web services.
  • You will master the implementation of client-side load balancing (Ribbon), dynamic scaling (Eureka Naming Server), and an API Gateway (Zuul). 
  • You will learn how to setup centralized Microservices configuration with Spring Cloud Config Server. 
  • You will learn how to implement distributed tracing for Microservices with Spring Cloud Sleuth and Zipkin. 
  • You will implement fault tolerance for Microservices with Hystrix. 
  • You will come to understand how to version your RESTful web services and understand how to monitor RESTful services with Spring Boot Actuator. 
  • You will understand how to document RESTful web services with Swagger and understand the best practices in designing RESTful web services, as well as how to use Spring Cloud Bus to exchange messages about Configuration updates. 
  • Simplify communication with other Microservices using Feign REST client
About

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 it's 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 how to implement these resources with multiple features including 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 the 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 how to establish communication between Microservices, enable load balancing, and the scaling up and down of Microservices. You will also learn to centralize the configuration of Microservices with Spring Cloud config server. You will implement the Eureka naming server and distributed tracing with Spring Cloud Sleuth, and Zipkin. You will create fault-tolerant Microservices with Zipkin.

Style and Approach

This course is very helpful for both beginners and experienced students who wish to gain knowledge on Restful web services and Spring Boot.

Features
  • We will help you to install Eclipse and get up and running with all frameworks such as Maven and embedded Tomcat.
Course Length 11 hours 3 minutes
ISBN 9781789132779
Date Of Publication 20 Mar 2018
Section Introduction - RESTful Web Services with Spring Boot
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
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
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 Approach
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 Web Services - Best Practices
Section Introduction - Microservices with Spring Cloud
Step 00 - 01 - Introduction to Microservices
Step 00 - 02 - Challenges with Microservices
Step 00 - 03 - Introduction to Spring Cloud
Step 00 - 04 - Advantages of Microservices Architectures
Step 00 - 05 - Microservice Components - Standardizing Ports and URL
Step 01 - Part 1 - Intro to Limits Microservices and Spring Cloud Config Server
Step 01 - Part 2 - Setting up Limits Microservices
Step 02 - Creating a hard coded limits service
Step 03 -Enhance limits service to get 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 Microservice
Step 13 - Setting up Currency Exchange Microservices
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 Microservices
Step 19 - Creating a service for currency conversion
Step 20 - Invoking Currency Exchange Microservices from Currency Conversion Micro
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 Microservices to Eureka
Step 27 - Connecting Currency Exchange Microservices 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 Microservices 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
FAQ 01 - Microservices Characteristics
FAQ 02 - What do you do next?

Authors

Ranga Karanam

in28Minutes Official - Ranga Karanam is an Architect with 15 years of Java programming and design experience with major banking clients across the world. He started in28Minutes with the aim of creating hands-on courses with real-world projects. The Step-By-Step series of courses is one of his creations. They use a problems-solution based step-by-step approach with practical, and real-world application examples. While their primary expertise is in the development, design and architecture of Java and related frameworks (Spring, Spring Boot, Spring MVC, Struts, Hibernate), they are expanding into the front-end world (Bootstrap, JQuery, Angular JS). The foundations for building high-quality applications are best laid down while learning. They love open source and therefore, all their code is open source too and available on Github. We use the 80-20 Rule. We touch upon other things briefly equipping you with enough knowledge to find out more on your own.