O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Master Microservices with Spring Boot and Spring Cloud

Video Description

An awesome journey from RESTful web services to microservices with Spring Boot and Spring Cloud

About This Video

  • We will help you to install Eclipse and get up and running with all frameworks such as Maven and embedded Tomcat.

In Detail

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.

Table of Contents

  1. Chapter 1 : Introduction
    1. Microservices and RESTful APIs with Spring Boot and Spring Cloud 00:03:36
    2. Microservices and RESTful APIs with Spring Boot & Spring Cloud - Course Overview 00:02:58
    3. Microservices and RESTful APIs with Spring Boot & Spring Cloud - Git Repository 00:02:39
    4. Installing Basic Tools 00:01:25
  2. Chapter 2 : Introduction To Web Services
    1. What is a Web Service? 00:06:08
    2. Important How Questions related to Web Services 00:06:41
    3. Web Services - Key Terminology 00:04:13
    4. Introduction to SOAP Web Services 00:04:40
    5. Introduction to RESTful Web Services 00:07:33
    6. SOAP vsRESTful Web Services 00:02:20
  3. Chapter 3 : Restful Web Services with Spring Boot
    1. Section Introduction - RESTful Web Services with Spring Boot 00:01:50
    2. Step 01 - Initializing a RESTful Services Project with Spring Boot 00:05:35
    3. Step 02 - Understanding the RESTful Services we would create in this course 00:06:20
    4. Step 03 - Creating a Hello World Service 00:04:51
    5. Step 04 - Enhancing the Hello World Service to return a Bean 00:05:30
    6. Step 05 - Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet 00:08:05
    7. Step 06 - Enhancing the Hello World Service with a Path Variable 00:03:18
    8. Step 07 - Creating User Bean and User Service 00:07:33
    9. Step 08 - Implementing GET Methods for User Resource 00:05:50
    10. Step 09 - Implementing POST Method to create User Resource 00:11:25
    11. Step 10 - Enhancing POST Method to return correct HTTP Status Code and Location 00:06:47
    12. Step 11 - Implementing Exception Handling - 404 Resource Not Found 00:06:56
    13. Step 12 - Implementing Generic Exception Handling for all Resources 00:11:53
    14. Step 13 - Exercise: User Post Resource and Exception Handling 00:01:16
    15. Step 14 - Implementing DELETE Method to delete a User Resource 00:04:32
    16. Step 15 - Implementing Validations for RESTful Services 00:10:17
    17. Step 16 - Implementing HATEOAS for RESTful Services 00:09:27
    18. Step 17 - Overview of Advanced RESTful Service Features 00:00:53
    19. Step 18 - Internationalization for RESTful Services 00:09:08
    20. Step 19 - Content Negotiation - Implementing Support for XML 00:05:34
    21. Step 20 - Configuring Auto Generation of Swagger Documentation 00:05:19
    22. Step 21 - Introduction to Swagger Documentation Format 00:09:47
    23. Step 22 - Enhancing Swagger Documentation with Custom Annotations 00:10:14
    24. Step 23 - Monitoring APIs with Spring Boot Actuator 00:09:13
    25. Step 24 - Implementing Static Filtering for RESTful Service 00:06:45
    26. Step 25 - Implementing Dynamic Filtering for RESTful Service 00:08:22
    27. Step 26 - Versioning RESTful Services - Basic Approach with URIs 00:05:18
    28. Step 27 - Versioning RESTful Services - Header and Content Negotiation Approach 00:09:24
    29. Step 28 - Implementing Basic Authentication with Spring Security 00:05:43
    30. Step 29 - Overview of Connecting RESTful Service to JPA 00:01:26
    31. Step 30 - Creating User Entity and some test data 00:05:49
    32. Step 31 - Updating GET methods on User Resource to use JPA 00:06:32
    33. Step 32 - Updating POST and DELETE methods on User Resource to use JPA 00:04:17
    34. Step 33 - Creating Post Entity and Many to One Relationship with User Entity 00:06:05
    35. Step 34 - Implementing a GET service to retrieve all Posts of a User 00:04:14
    36. Step 35 - Implementing a POST service to create a Post for a User 00:06:09
    37. Step 36 - Richardson Maturity Model 00:03:22
    38. Step 37 - RESTful Web Services - Best 00:03:29
  4. Chapter 4 : Microservices with Spring Cloud
    1. Section Introduction - Microservices with Spring Cloud 00:01:25
    2. Step 00 - 01 - Introduction to Microservices 00:04:24
    3. Step 00 - 02 - Challenges with Microservices 00:05:51
    4. Step 00 - 03 - Introduction to Spring Cloud 00:07:48
    5. Step 00 - 04 - Advantages of Microservices Architectures 00:02:46
    6. Step 00 - 05 - Microservice Components - Standardizing Ports and URL 00:02:37
    7. Step 01 - Part 1 - Intro to Limits Microservice and Spring Cloud Config Server 00:04:51
    8. Step 01 - Part 2 - Setting up Limits Microservice 00:05:34
    9. Step 02 - Creating a hard coded limits service 00:04:59
    10. Step 03 -Enhance limits service to get configuration from application properties 00:05:14
    11. Step 04 - Setting up Spring Cloud Config Server 00:03:55
    12. Step 05 - Installing Git 00:01:45
    13. Step 06 - Creating Local Git Repository 00:04:32
    14. Step 07 - Connect Spring Cloud Config Server to Local Git Repository 00:05:11
    15. Step 08 - Configuration for Multiple Environments in Git Repository 00:06:18
    16. Step 09 - Connect Limits Service to Spring Cloud Config Server 00:04:58
    17. Step 10 - Configuring Profiles for Limits Service 00:05:44
    18. Step 11 - A review of Spring Cloud Config Server 00:04:16
    19. Step 12 - Introduction to Currency Conversion and Currency Exchange Microservice 00:03:14
    20. Step 13 - Setting up Currency Exchange Microservice 00:03:35
    21. Step 14 - Create a simple hard coded currency exchange service 00:06:29
    22. Step 15 - Setting up Dynamic Port in the the Response 00:07:10
    23. Step 16 - Configure JPA and Initialized Data 00:07:56
    24. Step 17 - Create a JPA Repository 00:05:16
    25. Step 18 - Setting up Currency Conversion Microservice 00:02:16
    26. Step 19 - Creating a service for currency conversion 00:06:58
    27. Step 20 - Invoking Currency Exchange Microservice from Currency Conversion Micro 00:08:15
    28. Step 21 - Using Feign REST Client for Service Invocation 00:11:30
    29. Step 22 - Setting up client side load balancing with Ribbon 00:05:11
    30. Step 23 - Running client side load balancing with Ribbon 00:04:39
    31. Step 24 - Understand the need for a Naming Server 00:03:21
    32. Step 25 - Setting up Eureka Naming Server 00:05:25
    33. Step 26 - Connecting Currency Conversion Microservice to Eureka 00:03:06
    34. Step 27 - Connecting Currency Exchange Microservice to Eureka 00:03:02
    35. Step 28 - Distributing calls using Eureka and Ribbon 00:06:35
    36. Step 29 - A review of implementing Eureka, Ribbon and Feign 00:03:58
    37. Step 30 - Introduction to API Gateways 00:02:50
    38. Step 31 - Setting up Zuul API Gateway 00:04:36
    39. Step 32 - Implementing ZuulLogging Filter 00:06:01
    40. Step 33 - Executing a request through Zuul API Gateway 00:05:27
    41. Step 34 - Setting up Zuul API Gateway between microservice invocations 00:07:16
    42. Step 35 - Introduction to Distributed Tracing 00:03:26
    43. Step 36 - Implementing Spring Cloud Sleuth 00:08:34
    44. Step 37 - Introduction to Distributed Tracing with Zipkin 00:04:34
    45. Step 38 - Installing Rabbit MQ 00:04:31
    46. Step 39 - Setting up Distributed Tracing with Zipkin 00:06:54
    47. Step 40 - Connecting microservices to Zipkin 00:03:35
    48. Step 41 - Using Zipkin UI Dashboard to trace requests 00:07:15
    49. Step 42 - Understanding the need for Spring Cloud Bus 00:09:16
    50. Step 43 - Implementing Spring Cloud Bus 00:06:43
    51. Step 44 - Fault Tolerance with Hystrix 00:07:10
    52. FAQ 01 - Microservices Characteristics 00:02:23
    53. FAQ 02 - What do you do next? 00:01:33
  5. Chapter 5 : Appendix - Introduction to Spring Boot in 10 Steps
    1. 0005 - Section Introduction 04 - Introduction to Spring Boot in 10 Steps 00:01:13
    2. Step 1: Introduction to Spring Boot - Goals and Important Features 00:06:11
    3. Step 2: Developing Spring Applications before Spring Boot 00:03:46
    4. Step 3: Using Spring Initializr to create a project 00:04:48
    5. Step 4: Creating a Simple REST Controller 00:05:03
    6. Step 5: What is Spring Boot Auto Configuration? 00:09:07
    7. Step 6: Spring Boot vs Spring vs Spring MVC 00:05:55
    8. Step 7: Spring Boot Starter Projects - Starter Web and Starter JPA 00:07:39
    9. Step 8: Overview of different Spring Boot Starter Projects 00:04:01
    10. Step 9: Spring Boot Actuator 00:08:38
    11. Step 10: Spring Boot Developer Tools 00:04:12
  6. Chapter 6 : Appendix - Introduction to JPA in 10 Steps
    1. Section Introduction - Introduction to JPA in 10 Steps 00:01:04
    2. Step 1: Object Relational Impedence Mismatch 00:04:43
    3. Step 2: World before JPA - JDBC, Spring JDBC and myBatis 00:07:00
    4. Step 3: Introduction to JPA 00:05:12
    5. Step 4: Creating a JPA Project using Spring Initializr 00:06:02
    6. Step 5: Defining a JPA Entity – User 00:04:41
    7. Step 6: Defining a Service to manage the Entity - UserService and EntityManager 00:04:53
    8. Step 7: Using a Command Line Runner to save the User to database. 00:04:38
    9. Step 8: Magic of Spring Boot and In Memory Database H2 00:08:37
    10. Step 9: Introduction to Spring Data JPA 00:05:15
    11. Step 10: More JPA Repository: findById and findAll 00:02:54