Industry recognized certification enables you to add this credential to your resume upon completion of all courses

Need Custom Training for Your Team?
Get Quote
Call Us

Toll Free (844) 397-3739

Inquire About This Course
Packt Publishing, Instructor - Advanced Java and Spring Microservices

Packt Publishing

Founded in 2004 in Birmingham, UK, Packt's mission is to help the world put software to work in new ways, through the delivery of effective learning and information services to IT professionals. Working towards that vision, we have published over 6,000 books and videos so far, providing IT professionals with the actionable knowledge they need to get the job done - whether that's specific learning on an emerging technology or optimizing key skills in more established tools.

Instructor: Packt Publishing

Understanding of the core Java microservice concepts and framework

  • Use domain-driven design to design and implement microservices.
  • Secure Microservices using Spring Security.
  • Use Spring Cloud to deploy and manage applications on the cloud.

Duration: 3h 16m

Course Description

You’ll start by gaining a deep understanding of the core Java microservice concepts and framework; you will then focus on the high-level design of large software projects. You will gradually move on to setting up the development environment and configuring it before implementing continuous integration to deploy your microservice architecture! Then you'll move on to gain insight into the new features in Spring 5.0 and the course shows you how to build a microservice based cloud-native application using Spring MVC. The advanced features of Spring Boot will be illustrated through powerful examples. By the end of the course, you will be equipped with the knowledge and best practices required to develop microservices in Java, with the Spring Framework.

What am I going to get from this course?

  • Use domain-driven design to design and implement microservices
  • Secure microservices using Spring Security
  • Deploy and test microservices
  • Troubleshoot and debug issues faced during development
  • Consume microservices using a JavaScript web application
  • Learn best practices and common principles for microservices
  • Build microservices with Spring Boot
  • Use Spring Cloud to deploy and manage applications on the Cloud
  • Get to know the advanced features of Spring Boot in order to effectively develop and monitor applications
  • Get to know the best practices when developing applications with the Spring Framework

Prerequisites and Target Audience

What will students need to know or do before starting this course?

Some knowledge of Java developer who knows the basics of Spring

Who should take this course? Who should not?

The Mastering Microservices with Java video series is for Java developers and DevOps engineers looking to upgrade their Java and microservice skills. You’ll need to be a confident Java developer to approach the microservices concepts and coding involved, of course, since this is an advanced, cutting-edge Java topic. This video course is for an experienced Java developer who knows the basics of Spring and wants to  learn how to use Spring Boot to build applications and deploy them to the cloud.


Module 1: Mastering Microservices with Java

Lecture 1 The Course Overview

This video will an overview of entire course

Lecture 2 A Solution Approach Using New architecture paradigm

The aim of this video is to get a brief overview about Microservices and Monolithic architecture and its benefits. Have a brief overview about Microservices and Monolithic architecture, understand the limitations of monolithic architecture, & explore the benefits and flexibility that Microservices offer.

Lecture 3 Sample REST Service

In this video we will look at simple component to building a stand-alone application. Overview of REST Endpoints, support for REST endpoints creation using Spring MVC, test the REST Endpoints.

Lecture 4 Design importance and Domain Driven Design (DDD)

The aim of this video is to explore Design Matters and learn more about Domain Driven Design (DDD). Understand why design is the key for successful implementation of microservice, get to know about the history of DDD, & learn about Model Design and code Design in DDD.

Lecture 5 The Building Blocks - I

The aim of this video is to learn about the building blocks of DDD. Get a brief overview about Ubiquitous Language. learn more about Multilayered Architecture, & explore the artifacts of DDD - Entities.

Lecture 6 Building blocks – II: Artifacts of DDD

The aim of this video is to learn about the artifacts of DDD such as Value Objects and Services. Learn about Value Objects & know more about services in DDD.

Lecture 7 Aggregates and Repository

In this video, we will learn other two artifacts of DDD such as Aggregates and Repository. Get acquainted with the working of Aggregates & understand how repository interacts with the storage

Lecture 8 Factory and Modules

This videos covers final two artifacts of DDD that are Factory and Modules. Understand why Factory is required, know the importance of modules.

Lecture 9 Strategic Design and Principles - I

The aim of this video is to introduce you to the three strategic design and principles that could be followed to maintain the integrity of the domain model. Introduction to the strategic principles, explore Bounded context, & understand how Bounded context is helpful

Lecture 10 Strategic Design and Principles - II

In this video, learn about the other two strategic principles: Continuous Integration and Context Map. Get a brief overview about Continuous Integration, learn about the context map helps you to understand the overall picture of a large enterprise application, & explore a few patterns that can be used to define the communication between different contexts in the context map.

Lecture 11 Implementing Entity

The aim of this video is to use an interface or set of interfaces to implement the entity in our table reservation system. Create the Entity abstract class or interface required by all entities, write the BaseEntity abstract class, & write the implementation of restaurant and table classes that inherit BaseEntity.

Lecture 12 Implementing Repository

The aim of this video is to implement the repository pattern. Create the single interface names ResturantRepository and its implementation, create two superclasses – ReadOnly repository and repository interfaces.

Lecture 13 Implementing Service

The aim of this video is to implement the domain service. Create the ReadOnlyBaseService abstract class, create BaseService class, & write the implementation class- RestaurantService.

Lecture 14 OTRS Overview

The aim of this video to learn to use Online Table Reservation System to book a restaurant based on these services. Know about RestaurantService provides the functionality for the RestaurantResource, perform CRUD operations on user entities using user service and make use of booking service, & get a brief overview on the importance of API versioning.

Lecture 15 OTRS Services

In this video, we will explore the OTRS services such as restaurant service, booking service, user service and registration & discovery service. Overview of all the services and learn in-depth about the restaurant service.

Lecture 16 Implementing Restaurant Service

The aim of this video is to implement the Restaurant service. Overview of the endpoints & Implement the Restaurant service in IDE and implement the first endpoint.

Lecture 17 Implementing the GET Endpoint

The aim of this video is to implement the Get endpoints. Implement the Get endpoint - GET /v1/restaurants/.

Lecture 18 Implement Registration and Discovery Service

The aim of this video is to implement the Registration and Discovery service. Look at the commands for service execution & use the Netflix Eureka service.

Lecture 19 Testing

In this video we will test our services. Define the dependency: spring-boot-starter-test & perform Integration testing.

Module 2: Microservices and Cloud-Native Applications with Spring 5.0

Lecture 20 The Course Overview

This video gives an overview of the entire course.

Lecture 21 Typical Web Application Architecture with Spring

In this video, we will see a typical architecture for a web application developed with Spring. List cross-cutting concerns as a separate layer, web and business Layer, and data Layer

Lecture 22 Problems Solved by Spring

In this video, we will quickly review some of the important problems Spring has solved a number of problems that Enterprise Java applications have faced since the complexity associated with EJB2. Lightweight Architecture & simplified implementation of cross-cutting concerns

Lecture 23 Understanding Microservices

In this video, we will learn about what microservices are and how it is used. By taking an architecture example, we will learn about the monolithic application process. Challenges with Monolithic applications, microservice characteristics, automated build and release process.

Lecture 24 Microservice Advantages and Challenges

Microservices have several advantages. In this video, we will see how they help in keeping up with technology and getting solutions to your customers faster. Technology Evolution & defining the boundaries of subsystems.

Lecture 25 Cloud-Native Applications

Cloud-Native applications are those that can easily be deployed on the Cloud. These applications share a few common characteristics. We will begin by looking at the Twelve-Factor App which is a combination of common patterns among Cloud-Native applications. The build, release, and run phases & solutions to some commonly encountered patterns when building systems on the Cloud.

Lecture 26 Running Our Hello World Application

We can run the Hello World application in multiple ways. Let's start running it with the simplest option--running as a Java application. Auto-configuration & add a dependency in spring-boot-starter-web.

Lecture 27 Spring Boot Hello World

In this video, we will start with building our first Spring Boot application. We will use Maven to manage dependencies. Configure spring-boot-starter-parent, configure pom.xml with the required starter projects, and configure spring-boot-maven-plugin

Lecture 28 Building REST Service

In this video, we will focus on understanding what REST is and building a REST Service. Create a simple REST service returning a welcome message and a simple REST Controller method returning a string.

Lecture 29 Simple REST Method Returning an Object

In this video, we will create a method that returns a proper JSON response. Send a test request and see what response we get, customize the welcome message with a name.

Lecture 30 Creating a Todo Resource

In this video, we will create REST services for a basic todo management system. Retrieve and store details of a todo, perform integration testing on the TodoController class, & retrieve details for a specific Todo.

Lecture 31 Adding a Todo

In this video, we will add the method to create a new Todo. Post the todo to the given URI and getting the location from the header, and assert the location that contains the path to the newly created resource.

Lecture 32 Exception Handling

Spring Boot provides good default exception handling. We will start with looking at the default exception handling features provided by Spring Boot before moving on to customizing them. Understand the default exception handling provided by Spring Boot, create a resource that throws an exception, & a custom exception.

Lecture 33 HATEOAS – The REST Application Architecture

HATEOAS brings this concept of displaying related links for a given resource to RESTful services. When we return the details of a specific resource, we also return links to operations that can be performed on the resource, as well as links to related resources. Spring Boot starter HATEOAS.

Lecture 34 Validation

A good service always validates data before processing it. In this video, we will look at the Bean Validation API and use its reference implementation to implement validation in our services. Enable validation of the controller method, add validations on the bean, & define a few validations on the Todo bean.

Lecture 35 Documenting REST Services

There are multiple options to define a service contract for RESTful services. The most popular one in the last couple of years is Swagger. Swagger is gaining a lot of ground, with support from major vendors in the last couple of years. In this video, we will generate Swagger documentation for our services. Generate swagger specification, define all the elements in the Todo bean, create a todo for the user in Swagger UI.

Lecture 36 Caching

In this video, we will look at the implementation options that Spring Boot provides. Enable caching on the application & add custom data to cache.

Lecture 37 Externalized Configuration

It is a good practice to externalize configurations that change between different environments into a configuration file or database. Spring Boot provides a flexible, standardized approach for externalized configuration. Customize frameworks through application.properties.

Lecture 38 Custom Properties in application.properties

In this video, we will look at creating our application-specific configuration that can also be configured in application.properties. Configuration properties & profiles-based Bean configuration.

Lecture 39 Spring Boot Actuator

Spring Boot Actuator provides a number of production-ready monitoring features. We will add Spring Boot Actuator by adding a simple dependency. Add an HAL Browser to our application to visualize the information better configuration properties.