Hands-On Microservices with Spring Boot 2.0
3.1 (5 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
36 students enrolled

Hands-On Microservices with Spring Boot 2.0

Build Scalable Microservices with Spring Boot and Docker
3.1 (5 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
36 students enrolled
Created by Packt Publishing
Last updated 12/2018
English
English [Auto-generated]
Current price: $86.99 Original price: $124.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 2 hours on-demand video
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • This course is for developers who want to build complex microservices in the Spring ecosystem.
  • If you want to code to build robust and fault-tolerant systems with Spring and design and develop microservices and RESTful web services with Spring Boot and Spring Cloud, this course is for you.
Course content
Expand all 22 lectures 01:50:28
+ Introduction to Microservices and Spring
5 lectures 21:05

This video will give you an overview about the course.   

Preview 02:39

In this video, we will understand Spring Boot App entry point.                         

  • Look at the dependencies needed

  • Define App Runner

  • Understand @SpringBootApplication

 

Preview 04:51

In this video, we will look at REST services, microservices, and monoliths.                         

  • Start embedded microservices

  • Understanding how Spring use Jetty

  • Simple REST call to our running Service

 

Preview 04:09

In this video, we will create domain classes for a flight booking service.                         

  • Define the Travel entity

  • Understand @Entity annotation

  • Simple REST call to our running Service

 

Creating Domain Classes for a Flight Booking Service
04:02

In this video, we will look at Spring configuration and dependency injection.                         

  • Understand @Autowired annotation

  • Understand @Component annotation

  • Understand the Spring Bean lifecycle with @PostConstruct and @PreDestroy

 

Spring Configuration and Dependency Injection
05:24
+ Building RESTful Interfaces with Spring Boot
4 lectures 21:58

In this video, we will create persistence for our domain object.                         

  • Creating a repository for our entity

  • Extending CrudRepository

  • Defining available SQL queries

 

Creating Persistence for Our Domain Object
06:21

In this video, we will build RESTful interfaces with Spring MVC HATEOS.                         

  • Creating a REST controller

  • Exposing GET operations

  • Defining available SQL queries

 

Building RESTful Interfaces with Spring MVC HATEOS
04:32

In this video, we will learn about WebFlux and WebClient.                         

  • Using Reactor API

  • Creating a reactive repository

  • Creating a reactive web controller

 

Using Spring WebFlux and WebClient
05:28

In this video, we will call services with RestTemplate and deal with outages.                         

  • Using RestTemplate

  • Starting Spring App context in integration tests

  • Leveraging RestTemplate to test REST Endpoints

 

Calling Services with RestTemplate and Dealing with Outages
05:37
+ Designing Microservices
4 lectures 22:20

In this video, we will look at DDD-oriented microservice.                         

  • Look at the bounded contexts in our application

  • Find three domains within our app

  • Create a notifications bounded context

 

DDD-Oriented Microservice
05:40

In this video, we will learn to use bounded contexts to deal with large models.                         

  • Creating a booking bounded context

  • Distinguishing API and infrastructure bounded contexts

  • Creating a domain package

 

Using Bounded Contexts to Deal with Large Models
05:11

In this video, we will design an API with a bounded context.                         

  • Creating a destinations bounded context

  • Deciding what should be inside the API component

  • Splitting implementation into a separate component

 

Design an API with a Bounded Context
03:48

In this video, we will learn about the communication between bounded contexts.                         

  • Solving the problem of communication between Bounded Contexts

  • Creating abstraction of Event Bus

  • Plugging Event Bus into separate contexts

 

Communication between Bounded Contexts
07:41
+ Testing and Security
4 lectures 21:06

In this video, we will learn about testing services with Spring MVC Tests.                         

  • Use mockMvc()

  • Test GET with mock

  • Test POST with mock

 

Testing Services with Spring MVC Tests
06:40

In this video, we will learn to mock out external services.                         

  • Learn about @Profile annotation

  • Start tests with integration profile

  • Mock beans using the proper profile

 

Mocking Out External Services
04:31

In this video, we will secure HTTP with UserDetailsService for authentication.                         

  • Configuration of WebSecurity

  • Using permitAll()

  • Creating a /secret controller

 

Securing HTTP with UserDetailsService for Authentication
04:31

In this video, we will learn about CORS, CSRF attacks, and SSL.                         

  • Creating CSRF secured endpoints

  • Testing that the _csrf hidden token is included

  • MockMVC testing with security and without

 

CORS, CSRF Attacks, and SSL
05:24
+ Running Your Services
5 lectures 23:59

In this video, we will get ready for production with Spring Boot Actuator.                         

  • Enabling Actuator

  • Actuator Configuration

  • Examining /application/health and implementing custom health-check

 

Getting Ready for Production with Spring Boot Actuator
05:22

In this video, we will learn to cache responses.                         

  • Cache responses from an external service

  • Configure expiration policy of cache

  • Add an entry removal listener

 

Caching Responses
04:45

In this video, we will see exception handling and logging.                         

  • Create a logging aspect interceptor

  • Create a fallback strategy for third-party service exceptions

  • Use Hystrix as a circuit breaker

 

Exception Handling and Logging
03:40

In this video, we will discover the packaging of our application using Docker.                         

  • Adding Docker plugin to our project

  • Starting Docker on localhost

  • Building a Docker image with our app

 

Packaging Your Application with Docker
04:35

In this video, we will learn about monitoring systems.                         

  • Examining application/metrics

  • Adding custom metrics

  • Monitoring the application while there is HTTP traffic

 

Monitoring Systems
05:37
Requirements
  • No knowledge of the microservice architecture is required.
  • A basic understanding of the Spring ecosystem and Java programming is needed.
Description

This course takes a hands-on, practical approach to implementing microservices for your app development with the Spring ecosystem. We delve into the two main components of the Spring ecosystem for microservice development—Spring Boot and Spring Cloud—in detail.

You’ll see how to build microservices with Spring Boot 2.0 Then we’ll take you through a suite of tools that Spring Cloud offers for the discovery, routing, and deployment of microservices to the enterprise and the cloud. The course provides practical guidance for most of the common operational and infrastructural concerns and will show you how microservices address them.

We cover topics right from breaking your monolith to communication between services and deployment. This course will make microservices easily accessible to you so you can implement it instantly in your day-to-day projects.

About the Author

Tomasz Lelek is a Software Engineer who programs mostly in Java and Scala. He is a fan of microservices architecture and functional programming. He has worked with more than 700 production microservices in the microservices ecosystem written in Spring Boot. He has 5+ years of experience in product development in Spring. He is also the co-founder of an e-learning platform that was built with the Java language.

Who this course is for:
  • Explore Microservices-based architecture
  • Use Domain-Driven Design for designing your Microservices
  • Develop and design RESTful web services with Spring Boot
  • Develop microservices with Spring Boot and Spring Cloud
  • Implement exception handling, validation, HATEOAS, and filtering for RESTful web services
  • Explore Bounded Context to deal with large models and teams
  • Perform integration testing with Spring MVC
  • Use Spring Boot Actuator to expose operational information about the application running