Microservices and Cloud-Native Apps Development from Scratch
3.0 (3 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.
25 students enrolled

Microservices and Cloud-Native Apps Development from Scratch

A comprehensive guide to becoming an expert in the Spring Framework
3.0 (3 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.
25 students enrolled
Created by Packt Publishing
Last updated 5/2019
English
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 9 hours on-demand video
  • 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
  • Use Spring Framework 5 to build an end to end Reactive application with MongoDB
  • Learn functional programming with Spring 5 and Build a reactive web-stack using Spring WebFlux.
  • Develop web applications integrating Spring security, Spring REST, JPA Hibernate, and Spring WebFlux.
  • Get to know the advanced features of Spring Boot in order to effectively develop and monitor applications.
  • Develop simple applications to integrate Spring with JPA and Big Data technologies.
  • Learn how Spring Cloud helps you develop solutions for configuration management, service discovery, circuit breakers, and intelligent routing.
  • Understand the basics of Spring Cloud Data Flow and use it to build basic data flow use cases.
Course content
Expand all 82 lectures 09:01:38
+ Spring 5 in 7 Days
41 lectures 06:26:02

This video provides an overview of the entire course.

Preview 04:01

This video aims to explore Spring framework and the functionalities it brings. It also explains what’s new in Spring 5.

   •  Introduction to Spring Framework

   •  Overview of how Spring Framework works

   •  Learn what’s new in Spring 5

Spring Framework and What’s New in Spring
06:20

This video aims to explore Spring MVC.

   •  Define Spring MVC

   •  Learn about the dispatcher servlet

   •  Explore the Spring MVC architecture

Spring MVC Architecture
05:31

This video aims to explore the different types of context a Spring MVC application has. We learn to configure Spring MVC from XML to Java config, followed by dispatcher servlet processing.

   •  Understand different types of context and create them

   •  Learn to migrate from XML config to Java config

   •  Understand the dispatcher servlet process

Spring MVC Dispatcher and Controller – XML Config to Java Config
15:03

Explain how to do advanced Spring MVC custom configuration using JavaConfig.

   •  Customize dispatcher servlet configuration

   •  Learn about custom servlets, filters, and listener registration

   •  Explore controllers and testing

Advanced Configuration Using JavaConfig
14:27

This video aims to explain the assignment for day 1.

Assignment
01:22

This video gives an overview of the topics for day 2 and also demonstrates the solution to the day 1 assignment.

   •  Demonstrate the solution using a real-world example

Preview 11:22

This video explains handler mappers and handler interceptor in Spring MVC. We also learn to create controllers.

   •  Understand handler mapping and handler interceptors

   •  Learn about controllers in Spring MVC

   •  Demonstrate passing data from view to controller and vice-versa

Handler Mapping and Attributes
20:05

In this video, we will explore the different types of view resolvers with Spring MVC.

   •  Overview of view resolvers

   •  Learn the different types of available view resolvers and their working

   •  Explore to configure view resolvers

View Resolvers
10:54

This video explains how to do exception handling in Spring MVC, followed by leveraging caching support and multipart requests for file uploads.

   •  Understand @ExceptionHandler and @ControllerAdvice

   •  Learn caching support for static pages/images/CSS and so on at the global level and local level

   •  Demonstrate multipart config and request processing for file(s) upload

Exception Handling
12:23

This video aims to explain the assignment for day 2.

   •  Explain the assignment

Assignment
02:07

This video aims to give an overview of the topics for day 3 and also demonstrates the solution for the day 2 assignment.

   •  Demonstrate the solution using a real-world example

Assignment Solution
21:35

This video explains reactive, non-blocking, async programming with Spring 5. There is also an introduction to Spring WebFlux.

   •  Define reactive programming

   •  Explore MVC versus WebFlux

   •  Learn about the reactive architecture

Reactive Programming
10:37

In this video, we will explore Spring WebFlux, its core dependencies, and the ways to configure and get started.

   •  Understand the Spring WebFlux core dependencies and building blocks

   •  Learn about Spring WebFlux configuration

   •  Explore the Spring WebFlux architecture

Basics of Spring WebFlux
10:19

Explore a practical approach and configuration of Spring WebFlux using annotated controllers having reactive MongoDB as the backend.

   •  Learn about WebFlux and reactive mongo dependencies

   •  Understand the Spring WebFlux MVC Java configuration

   •  Set up reactive mongo and reactive repositories

Spring WebFlux in Practice
14:54

Explain the practical approach and configuration of Spring WebFlux using functional programming, having reactive MongoDB as the backend.

   •  Define functional programming

   •  Understand the Spring WebFlux functional programming configuration

   •  Set up reactive mongo and reactive repositories

WebFlux Functional Programming
18:51

This video aims to explain the assignment for day 3.

Assignment
01:39

This video aims to give an overview of the topics for day 4 and also demonstrates the solution for the day 3 assignment.

   •  Demonstrate the solution for the assignment using a real-world example

Assignment Solution
07:05

In this video, we will learn about REST services and message conversion using Spring Rest.

   •  Introduction to REST

   •  Understand REST methods and idempotent

   •  Explore dependencies and message converters

REST Services
09:25

In this video, we will be using boot to create REST Services.

   •  Introduction to Spring Boot 2+

   •  Learn the Spring Boot essentials

   •  Create a Spring REST project using Spring Boot

Build a RESTful Web Service Using Spring Boot
20:39

This video explains RestTemplate Java configuration to consume REST endpoints.

   •  Overview of RestTemplate

   •  Understand RestTemplate Java configuration

   •  Consume REST endpoints using supported HTTP methods

RestTemplate and Consuming RESTful Web Services
09:05

This video explains how to use Reactive WebClient to consume and hit reactive endpoints.

   •  Explore WebClient builder configuration

   •  Demonstrate how to consume REST endpoints using supported HTTP methods

   •  Subscribe to returned publishers

Reactive WebClient
10:30

This video aims to explain the assignment for day 4.

Assignment
01:11

This video aims to give an overview to the topics for day 5 and also demonstrate the solution for day 4 assignment.

   •  Demonstrate the solution for the assignment using a real-world example

Assignment Solution
07:31

In this video, we will learn about Spring Security 5+.

   •  Learn about Spring Security and its advantage

   •  Understand core modules and runtime environment

   •  Explore core components and building blocks

Spring Security Basics
06:05

In this video explains Authentication and Authorization process using Spring Security.

   •  Overview to Spring Security Authentication Process in a Web application

   •  Understand Spring Security Authorization Process

   •  Explore the Spring Security Filter Chain

Authentication and Authorization
05:59

This video explains Spring Security implicit and explicit Form Login, CSRF, and Logout.

   •  Demonstrate Spring Security Form Login using implicit and custom pages

   •  Overview to CSRF and Learn to avoid the trap

   •  Handle Logout in Spring Security

Form Login
19:33

This video explains Spring Security Java Configuration.

   •  Explore Spring Security Java Configuration

   •  Understand Dependency and Context loading

   •  Learn about Authentication and Authorization Java configuration

Integrate Spring Security in the Application
19:26

This video aims to explain the assignment for day 5.

   •  Explains the assignment

Assignment
01:30

This video aims to give an overview to the topics for day 6 and also demonstrate the solution for day 5 assignment.

   •  Demonstrate the solution for the assignment using a real-world example

Assignment Solution
04:30

In this video, we will learn about ORM, JPA, persistenceContext, and JPA annotations.

   •  Overview to ORM

   •  Introduction to JPA, persistenceContext, persistenceUnit, EntityManager

   •  Learn about JPA annotations

JPA and Hibernate
19:16

In this video we will learn Hibernate collections, association mappings, composition, and inheritance.

   •  Understand Hibernate composition and collections

   •  Explore inheritance in hibernate

   •  Association mapping in hibernate

Hibernate Relational Mappings
19:06

This video explains Spring transaction management and hibernate java config.

   •  Learn about Spring transaction management

   •  Understand Hibernate JavaConfig

   •  Explore Spring Hibernate integration

Transaction Management and Integrate Hibernate in the Application
09:38

This video aims to explain the assignment for day 6.

   •  Explain the assignment

Assignment
00:56

This video aims to give an overview to the topics for day 7 and also demonstrate the solution for day 6 assignment.

   •  Demonstrate the solution for the assignment using a real-world example

Assignment Solution
06:36

This video explains how to integrate Spring Security with Spring Framework MockMvc.

   •  Learn Context and Filter Chain autowiring

   •  Set up MockMvc configuration

   •  Explore how to integrate with Spring Security context and filter, and build the MockMvc object

Setting Up MockMvc
03:23

This video explains how to use MockMvc object to perform get and post requests and expect the result, and how to do the form logins using MockMvc test cases.

   •  Learn about RequestPostProcessor configuration and static import.

   •  Explore post and get requests to different methods of controllers/service

   •  Perform form logins by creating multiple mock scenarios. Expect the result in test cases

Request Post Processors and Request Builder
06:57

This video introduces Mockito. We integrate with MockMvc and learn how to mock repository and inject the mocks.

   •  A Mockito introduction

   •  Understand @Mock and @InjectMock annotations

   •  Explore Mock DAO and verify the access

Using Mockito Mocks
08:55

In this video, Spring Security - Method Security is explained. Then how to build test cases to test method security.

   •  Revisit Spring Security Java configuration

   •  Test framework dependency and how to secure methods

   •  Method security test setup and test cases

Testing Method Security
05:15

This video aims to explain the assignment for day 7.

   •  Explain the assignment

Assignment
00:46

This video aims to demonstrate the solution for the day 7 assignment.

   •  Demonstrate the solution using a real-world example

Assignment Solution
01:15
+ Microservices and Cloud-Native Applications with Spring 5.0
20 lectures 01:14:23

This video gives an overview of the entire course.

Preview 02:17

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

  • Data Layer

Typical Web Application Architecture with Spring
04:58

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

Problems Solved by Spring
03:39

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

Understanding Microservices
01:56

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

Microservice Advantages and Challenges
02:19

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

Cloud-Native Applications
03:17

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

  • Configure spring-boot-maven-plugin

Spring Boot Hello World
06:57

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

Running Our Hello World Application
03:50

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

  • Create a simple REST Controller method returning a string

Building REST Service
04:16

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

Simple REST Method Returning an Object
03:49

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

Creating a Todo Resource
04:57

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

  • Asserts the location that contains the path to the newly created resource

Adding a Todo
02:33

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

  • Create a custom exception

Exception Handling
06:14

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

HATEOAS – The REST Application Architecture
01:59

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

Validation
02:04

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

Documenting REST Services
03:48

In this video, we will look at the implementation options that Spring Boot provides.

  • Enable caching on the application

  • Add custom data to cache

Caching
02:47

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

Externalized Configuration
02:47

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

Custom Properties in application.properties
05:00

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

Spring Boot Actuator
04:56
+ Working with Data and Cloud in Spring 5.0
21 lectures 01:21:13

This video gives an overview of the entire course.

Preview 02:48

Spring Data JPA implements the core functionality defined in Spring Data Common interfaces.

  • Understand the different concepts related to Spring Data Commons and Spring Data JPA

  • Create a simple Spring Boot Maven project

  • Create an entity Todoto manage todos

Spring Data JPA
03:13

A custom repository can be created by extending the repository marker interface.

  • Extend CrudRepositoryto expose all create, read, update, and delete methods on an entity

  • Define a few tests to use the sorting and pagination capabilities of UserRepository

A Simple Repository
04:34

In this video, we will look at examples of some of the options Spring Data provides to customize your query methods.

  • Create a method by the name findByTodosTitlein UserRepository

  • Spring Data JPA also provides options to define custom queries

  • Create a method with the same name as the named query

Query Methods
04:02

Spring Data Rest provides a very simple option to expose CRUD RESTful services around data repositories. We will start by including the Spring Boot Data Rest starter in our pom.xml.

  • Expose a repository using REST

Spring Data REST
02:44

In this video, we will take MongoDB as an example to connect using Spring Data.

  • Create a new Entity class Person to store to MongoDB

  • Create a new repository

Big Data
03:05

In this video, We will use two microservices to demonstrate concepts of setupmicroservices.

  • Create a service to expose a set of random numbers

  • Define a simple application configuration with one property

  • Configure application.properties

Demo Microservices Setup
05:32

In this video, we will set up the Cloud Config Server using Spring Initializr.

  • Add the Config Server to an existing application

  • Connect Spring Cloud Config Server to a local Git repository

  • Create an environment-specific configuration

Setting Up Spring Cloud Config Server
06:08

Spring Cloud Bus makes it seamless to connect microservices to lightweight message brokers, such as Kafka and RabbitMQ. In this video, we will assume thatthere are five instances of Microservice A running in production.

  • Use Spring Cloud Bus to propagate the configuration change to multiple instances over a message broker such as RabbitMQ

  • Add connectivity to Spring Cloud Bus for Microservice A.

  • Update microservice-a.propertieswith a new message

Spring Cloud Bus
05:26

Load balancing is important in order to ensure that the load is equally distributed among the different instances of microservices.

  • Add Ribbon to service consumer microservice

Load Balancing
02:44

In this video, we will learn about the necessity of asynchronous communication.

  • Complexities of asynchronous communication

Message-Based Asynchronous Communication
01:53

In this video, we will look at different projects provided by Spring to enable message-based communication between applications.

  • Model for stock trading example

Spring Projects for Asynchronous Messages
05:52

Spring Cloud Data Flow provides interfaces to define applications and define flows between them using Spring DSL. Spring Data Flow Server understands the DSL and establishes the flow between applications.

  • Set up Spring Cloud Data Flow server

  • Set up Data Flow Shell project

  • Configure the apps

Implementing Spring Cloud Data Flow
05:31

Spring Cloud Data Flow offers RESTful APIs around applications, streams, tasks, jobs, and metrics.

  • Register the task on the data flow shell

Spring Cloud Data Flow REST APIs
03:40

In this video, we will consider the traditional approach to building a simple use case and compares it with the reactive approach.

  • Comparison between the traditional and reactive approaches

Reactive UseCase – A Stock Price Page
02:38

In this video, we will discuss Reactive Streams, Reactor, and Spring WebFlux.

  • Create a Mono

  • Create multiple subscribers listening on events from a Mono or Flux

Reactive Programming in Java
06:09

Spring Web Reactive is one of the important new features in Spring Framework 5. It brings in reactive capabilities for web applications. Spring Web Reactive is based on the same fundamental programming model as Spring MVC.

  • Create a project using Spring Initializr

  • Create Reactive Controller

  • Create an HTML view

Spring Web Reactive
03:46

In this video, we will use the Spring Boot Reactive MongoDB starter to create a simple example connecting to ReactiveMongo.

  • Integrate Spring Boot Reactive MongoDB Starter

  • Create a ReactiveCrudRepository

  • Create Reactive methods in Rest Controller

Reactive Databases
04:05

Layering the applications helps in simplifying unit tests. The code in each layer can be complete unit tested by mocking out the layer.

  • Separate API and impl for important layers

Layered Architecture
02:07

In this video, we will learn the types of exception handling.

  • Spring's approach to exception handling

  • Use the basePackageClasses attribute in ComponentScan

  • Manage dependency versions for Spring Projects

Exception Handling
01:51

In this video, we will take a quick look at unit testing examples and best practices for different layers. We will use an embedded database instead of a real database for integration tests.

  • Use autowireMockMvcand execute web requests

  • Guidelines for Unit Testing

  • Spring session

Unit Integration Testing
03:25
Requirements
  • Prior Java Programming knowledge is assumed.
Description

The Spring framework is a popular choice for developers when designing an enterprise-based application. It enables developers to create high-performing, reusable, easily testable, and loose coupling enterprise Java applications.

With this expert, guide you'll begin with the basics of Spring 5 where you'll learn to use Spring Framework 5 to build an end to end Reactive application with MongoDB, test your applications using MockMVC and Mockito. Then you will get an insight into the new features of Spring 5.0 to learn to build a Cloud-native application using Spring MVC. Moving further you will get a thorough understanding of how to build and extend microservices using Spring Boot, Develop simple applications to integrate Spring with JPA and Big Data technologies & much more.

By the end of the course, you'll have a solid knowledge of the Spring framework and modules and will be able to build enterprise-grade Java applications in 7 days.

Contents and Overview

This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Spring 5 in 7 Days is your one-stop guide to learning and building applications using the Spring framework in 7 days. The Spring framework enables developers to create high-performing, reusable, easily testable, and loose coupling enterprise Java applications. It can be used to develop any Java application. By the end of the course, you'll have a solid knowledge of the Spring framework and modules and will be able to build enterprise-grade Java applications in 7 days.

The second course, Microservices and Cloud-Native Applications with Spring 5.0 begins with an insight into the new features in Spring 5.0 and shows you how to build a Cloud-native application using Spring MVC. The advanced features of Spring Boot will be illustrated through powerful examples. By the end of the video, you will be equipped with the knowledge and best practices required to develop microservices with the Spring Framework.

The third course, Working with Data and Cloud in Spring 5.0 begins with an insight into the new features in Spring 5.0 and shows you how to build an application using Spring MVC. You will realize how application architectures have evolved from monoliths to those built around microservices. You will then get a thorough understanding of how to build and extend microservices using Spring Boot. You will also understand how to build and deploy Cloud-Native microservices with Spring Cloud. The advanced features of Spring Boot will be illustrated through powerful examples. We will be introduced to a JVM language that’s quickly gaining popularity - Kotlin. Also, we will discuss how to set up a Kotlin project in Eclipse. By the end of the video, you will be equipped with the knowledge and best practices required to develop microservices with the Spring Framework.

About the Authors:

  • Ankit Mishra is a senior software engineer with extensive IT experience in mission-critical development projects and architecture designs. He has worked for giants such as Ericsson, Fidelity, and others. He has more than six years' experience in managing and delivering Spring MVC and Spring Security projects, Cloud deployAnkit Mishra is a Senior Software Engineer with extensive IT experience in mission-critical development projects and architecture designs. He has worked for giants such as Ericsson, Fidelity, and others. He has more than six years' experience in managing and delivering Spring MVC and Spring Security projects, Cloud deployment, and PaaS cloud administration. Currently, he is working on Spring microservices, Spring Security, cloud deployment, and tuning. Specialties: Red-Hat Certified engineer. Functional domains: Retail and Banking.

  • Ranga Rao Karanam is a programmer, trainer, and architect. His areas of interest include Cloud Native Applications, microservices, evolutionary design, high-quality code, DevOps, BDD, TDD, and refactoring. He loves consulting for start-ups on developing scalable, component-based Cloud Native applications, and following modern development practices such as BDD, continuous delivery, and DevOps. He loves the freedom the Spring Framework brings to developing enterprise Java applications. Ranga started in28minutes with the vision of creating high-quality courses on developing Cloud Native Java applications. He is looking forward to enhancing his already considerable success--75,000 students on Udemy and 35,000 subscribers on YouTube. Ranga likes to play cricket and go hiking. His dream is to spend a year hiking the Himalayas.

Who this course is for:
  • ● This course is for Java developers who want to master Spring framework modules with Hibernate quickly to build powerful and secure applications and deploy them to the cloud.