Spring Boot Microservices with Spring Cloud Beginner to Guru

34h 14m 34s
English
Paid

Course description

Microservices are all the buzz in the industry right now. Building a microservice is not just a matter of using RESTFul APIs. Microservices are much MUCH more than that. In this course you will learn that Microservices are an architectural style. The allow companies to achieve massive scale while maintaining a high degree of flexibility.  This course goes beyond simple RESTful APIs and explores microservices as an architectural style.

Read more about the course

About the Course

Traditionally, large enterprise class applications were developed as large monolithic applications.

The Spring Framework started as an alternative to J2EE (now JEE) for building these large monolithic enterprise applications.

As the industry evolved to favor microservices over monoliths, the Spring Framework and Spring Boot evolved also.

The Spring Framework gives you a battle-tested enterprise grade framework for building applications.

Spring Boot and Spring Cloud are tools specifically for the development of microservices using the Spring Framework.

Microservices present a unique set of challenges over monoliths. Spring Boot and Spring Cloud help you overcome these changes.

  • What are these challenges that microservices have, which traditional monoliths do not?

  • Is it okay for microservices to share databases?

  • How do you coordinate business logic across a series of microservices?

  • How do you manage transactions across serval microservices with different databases?

To explain these questions, in this course you get to explore a traditional Spring Boot monolith type of application. (Along the style of Spring Pet Clinic).

We will then re-create this monolithic application using a set of microservices.

You get to see, step by step how to build 3 different microservices.

Microservices are much more than just having a set of RESTFul APIs. Microservices frequently use asynchronous messaging systems, which is fully covered.

While the Spring Framework and Spring Boot are the tools you use to construct Microservices, Spring Cloud provides the tools to deploy microservices.

You get to see the latest tools in Spring Cloud for deploying Spring Boot Microservices into a distributed (or cloud) environment.

In 2018, Netflix announced several core projects to Spring Cloud were entering maintenance mode. Meaning no new development would be done on these projects.

Thus, in December of 2018, the Spring Cloud Team recommended several key replacements:

Previous               Replacement

Hystrix         -->      Resliience4J

Ribbon         -->     Spring Cloud Load Balancer

Zuul 1           -->     Spring Cloud Gateway

Archaius 1    -->    Spring Cloud Config

Therefore, recommend replacements are covered in this course.

Covered in this Course

In this course you will learn:

  • Develop RESTful Services using Spring MVC

  • Consume RESTFul Services with Spring RestTemplate

  • How to use Project Lombok

  • How to use MapStruct

  • Spring Data JPA with Hibernate

  • Configuration of Spring Boot for MySQL and H2

  • How to use and configure Jackson for processing JSON with Spring Boot

  • Documentation and testing of Spring Boot microservices using Spring RESTdocs

  • Standardizing dependencies using Apache Maven

  • Spring Application Events

  • Using JMS Messaging using Apache ActiveMQ Artemis

  • The Saga Pattern

  • How to use Spring State Machine for coordinating Sagas

  • Integration Testing using Spring Boot and JUnit 5

  • Using WireMock with JUnit 5

  • How to use Awaitily in your Integration Tests

  • The API Gateway pattern using Spring Cloud Gateway

  • Load Balanced Routes using Netflix Ribbon / Spring Cloud Loadbalancer

  • Service Registration using Netflix Eureka

  • Service Discovery with Netflix Eureka

  • Service Discovery using Spring Cloud OpenFeign

  • Circuit Breaker Pattern using Reslience4J and Hystrix / Spring Cloud OpenFeign

  • Manage configuration with Spring Cloud Config

  • Spring Boot Actuator

  • Use Docker to create images for your Spring Boot applications

And much much more!

Requirements:
  • Must know Java and Spring Framework
  • Basic Docker Skills
  • SQL Skills - MySQL is used in course
  • Linux skills helpful

Who this course is for:

  • Java Developers who wish to learn how to develop Spring Boot Microservices with Spring Cloud

What you'll learn:

  • Learn how to develop Microservices with Spring Boot
  • Learn how to deploy and manage Spring Boot Microservices with Spring Cloud
  • How to deconstruct a monolith into Spring Boot Microservices
  • Best Practices for Developing RESTFul APIs with Spring MVC
  • How to consume RESTFul APIs using Spring RestTemplate
  • Using Java Bean Validation with Spring Boot
  • How to use Project Lombok and MapStruct to reduce boiler plate code
  • Generate API documentation with Spring REST Doc
  • Configure Jackson for JSON processing with Spring Boot
  • Use JMS for messaging between Spring Boot Microservices
  • Use Spring State Machine to Apply the Saga Pattern with Microservices

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 342 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Spring Boot Microservices with Spring Cloud Beginner to Guru

0:00
/
#1: Welcome to Spring Boot Microservices!

All Course Lessons (342)

#Lesson TitleDurationAccess
1
Welcome to Spring Boot Microservices! Demo
05:39
2
What you will build in the Spring Boot Microservices Course
07:49
3
Getting the Most out of this Course
07:24
4
Setting up your Development Environment
03:22
5
Is your IDE Free Like A Puppy?
04:33
6
Introduction to Intro to Microservices Section
12:21
7
The Traditional Monolith Application
01:15
8
What are Microservices?
08:20
9
What is the Cloud?
07:18
10
Adopting Microservices in Your Organization
07:20
11
Microservice Architecture and Design
06:26
12
12 Factor Applications
08:49
13
Introduction to Microservices Conclusion
10:00
14
Introduction
03:03
15
HTTP Protocol
01:27
16
HTTP Request Methods
07:18
17
Beginners Guide to REST
06:44
18
Richardson Maturity Model
06:07
19
Spring Framework and RESTFul Services
07:27
20
Conclusion
07:11
21
Introduction
01:43
22
Introducing SFG Beer Works
01:16
23
HTTP GET with Spring MVC
07:50
24
Introduction to Postman
22:06
25
Axis TCPMon
05:42
26
Assignment - Create GET Endpoint with Spring MVC
04:16
27
Assignment Review
01:11
28
HTTP POST with SpringMVC
08:47
29
Spring Boot Development Tools
05:38
30
HTTP PUT with Spring MVC
07:40
31
Spring MVC @RequestBody Annotation
04:22
32
HTTP DELETE with Spring MVC
08:15
33
Assignment - HTTP Operations with Spring MVC
03:58
34
Assignment Review
01:15
35
API Versioning
08:19
36
API Versioning Example
05:19
37
API Versioning and Source Control
09:03
38
LC Beer Service - Initial Spring Boot Project Creation
05:15
39
LC Beer Service - Data Model
09:13
40
LC Beer Service - Beer Controller
08:32
41
LC Beer Service - JUnit 5 Controller Tests
06:08
42
Conclusion to Spring MVC Rest Services
08:55
43
Introduction to Spring Boot RestTemplate
00:57
44
HTTP GET with Spring RestTemplate
02:07
45
HTTP POST with Spring RestTemplate
19:50
46
HTTP PUT with Spring RestTemplate
04:01
47
HTTP DELETE with Spring RestTemplate
04:01
48
Assignment - Create Spring RestTemplate clients
04:38
49
Assignment Review
01:40
50
HTTP Clients
06:08
51
Apache HTTP Client Configuration
09:24
52
Apache Client Request Logging
09:26
53
Assignment - Externalize Properties
05:15
54
Assignment Review
02:59
55
LC - JPA Entities
08:16
56
LC - Spring Data JPA Repositories
07:10
57
LC - Bootstrap Data
03:34
58
Conclusion to Spring Boot RestTemplate
07:19
59
Introduction
01:12
60
Java Bean Validation
01:39
61
Bean Validation Implementation
08:13
62
Validation Error Handling
07:23
63
Spring Boot Method Validation
04:39
64
Assignment - Add Validation and Error Handling
02:26
65
Assignment Review
01:30
66
Spring MVC Controller Advice
04:58
67
LC - Bean Validation
05:25
68
LC - Validation and Error Handling
03:52
69
Conclusion to Spring MVC Validation
05:29
70
Introduction
01:17
71
Overview of Project Lombok
02:33
72
Project Lombok Configuration
09:31
73
Project Lombok Examples
05:51
74
Overview of MapStruct
05:40
75
MapStruct Configuration
05:36
76
Example of using Project Lombok and MapStruct
12:14
77
Assignment - Use MapStruct
06:21
78
Assignment Review
01:19
79
Date Conversion with MapStruct
03:48
80
LC - Implementing MapStruct
04:29
81
LC - Fixing Broken Tests
06:32
82
LC - Adding CI Builds with CircleCI
03:21
83
Conclusion
06:44
84
Introduction
01:35
85
Spring REST Docs Introduction
02:12
86
Project Code Review
05:07
87
Maven Configuration
05:56
88
Spring Mock MVC Configuration
06:21
89
Documenting Path Parameters
04:33
90
Documenting Query Parameters
06:09
91
Documenting Responses
02:27
92
Documenting Requests
03:13
93
Documenting Validation Constraints
04:13
94
URI Customization
10:42
95
Documentation Generation
03:18
96
Serving Docs with Spring Boot
08:54
97
Assignment - Add Spring REST Doc to Project
04:04
98
Assignment Review
02:26
99
Conclusion
07:25
100
Introduction
01:54
101
JSON with Spring Boot Overview
02:08
102
Overview of Jackson
05:47
103
Json Testing with Spring Boot
09:08
104
Jackson Property Naming Strategies
06:21
105
Assignment - Configure Property Naming Strategy
05:07
106
Assignment Review
01:16
107
Setting Property Names with Jackson
04:15
108
Using @JsonFormat with Jackson
04:15
109
Custom Serializer with Jackson
04:13
110
Custom Deserializer with Jackson
05:33
111
LC - Jackson Configuration
06:43
112
LC - Jackson JSON Creator
02:28
113
LC - Beer Service - Implement Controller Methods
03:29
114
LC - Beer Service - Adding standard UPCs
12:21
115
Conclusion
07:40
116
Introduction
01:28
117
SFG Brewery Monolith
03:25
118
Monolith Project Code Review
05:14
119
Deconstruction Strategies
10:48
120
Monolith Deconstruction Plan
09:27
121
Beer Service Code Review
05:32
122
Beer Order Service Code Review
02:49
123
Beer Inventory Service Code Review
06:33
124
Setting Default Ports for Services
08:09
125
Data Initialization
05:21
126
Enhance Get Beer with Inventory Information
05:22
127
Assignment - Add Show Inventory as Parameter
14:32
128
Assignment Review
01:36
129
Add Caching to Get Beer API
07:34
130
Assignment - Create Get Beer by UPC Endpoint
11:00
131
Assignment Review
01:31
132
Save UPC on Beer Order
07:20
133
Assignment - Enhance Order Response with Beer Information
02:33
134
Assignment Review
01:46
135
Deconstruction Next Steps
08:30
136
Conclusion
05:11
137
Introduction
01:05
138
Maven Bill of Materials
03:16
139
Maven BOM Creation
04:34
140
Maven BOM Setting Common Properties
06:03
141
Maven BOM Dependency Management
06:57
142
Maven BOM Common Dependencies
05:15
143
Maven BOM Common Build Plugins
06:16
144
Maven Enforcer Build Plugin
03:46
145
Beer Service Parent POM Configuration
05:49
146
Assignment - Update Services to use BOM
11:32
147
Assignment Review
02:02
148
Using Released BOMs
06:42
149
Assignment - Update Services to use Release BOM
10:25
150
Assignment Review
01:55
151
IntelliJ Workspace Tips and Tricks
06:53
152
Conclusion
10:08
153
Introduction
01:44
154
Overview of Datasource Configuration with Spring Boot
02:35
155
Configure H2 MySQL Compatibility Mode
07:16
156
MySQL Requirements and Setup
06:17
157
MySQL Beer Service Configuration
06:17
158
Configure Beer Service for Local MySQL
06:08
159
Correcting Hibernate Error with MySQL
06:11
160
Assignment - Configure Services for MySQL
05:13
161
Assignment Review
01:29
162
Assignment - Database Initialization
10:05
163
Assignment Review
08:37
164
Correction - Hibernate Dialog
04:43
165
Data Source Connection Pooling
01:27
166
HikariCP Configuration for MySQL
10:12
167
Conclusion
08:23
168
Introduction
01:14
169
Introduction to JMS
01:29
170
Initial Project and Maven Dependencies
12:30
171
Java Message Object
07:31
172
Embedded Server Configuration
04:45
173
Task Configuration
04:59
174
Message Converter Configuration
03:15
175
Sending JMS Messages
05:50
176
Receiving JMS Messages
05:43
177
Send and Receive of JMS Messages
11:03
178
Running Active MQ in Docker
12:18
179
Using Local ActiveMQ Broker with Spring Boot
06:40
180
JMS and Spring Message Data Types
06:40
181
Conclusion
07:15
182
Introduction
01:50
183
Assignment - Configure JMS for Services
02:07
184
Assignment Review
01:48
185
IntelliJ Tips and Tricks - Auto Import on Paste
03:44
186
Brewing Beer Process Overview
03:25
187
Create Beer Event Objects
02:54
188
Create Brewing Service
05:23
189
Fixing the Broken Build!
10:24
190
Create Brew Beer Listener
03:18
191
Jackson JMS Configuration
06:59
192
Tips and Tricks - Logging Level
06:42
193
Challenge - Create New Inventory Listener
03:32
194
Challenge Review
02:37
195
Conclusion
13:38
196
Introduction
02:59
197
Introduction to Spring State Machine
01:26
198
Credit Card Payment State Machine Overview
08:07
199
Spring Boot Project Creation and Dependencies
03:44
200
State Machine Enumerations
07:27
201
Spring Data JPA Configuration
03:05
202
State Configuration
03:54
203
Transition Configuration
05:37
204
Logging Configuration Using State Change Listeners
08:26
205
Payment Service Creation
04:59
206
Initializing State Machine from Database
04:25
207
Sending Events to the State Machine
05:45
208
State Change Interceptor
04:54
209
Progressing State from New to Pre-Auth
06:13
210
State Machine Actions
10:20
211
State Machine Guards
07:25
212
Microservice Design Pattern - Event Sourcing
05:30
213
Conclusion
05:23
214
Introduction
01:07
215
The Problem with Transactions
01:53
216
The Need for Sagas
09:29
217
Saga Coordination
11:30
218
Order Allocation Saga
07:21
219
Update Spring Boot in BOM
05:47
220
State Machine Enumerations
07:24
221
Configure State Machine States
04:44
222
Fix CI Build Failure
03:45
223
Refactor Model to Common Package
05:29
224
Beer Order Manager Service
12:24
225
Refactor Order States
08:41
226
Fix CI Build Failure
03:26
227
Initiate Allocate Order
02:27
228
Add Allocation Service
10:35
229
Fix Failed CI Build
04:34
230
Retrospective
03:13
231
Introduction to Integration Testing
07:20
232
Create Integration Test for New Order to Allocate
01:07
233
Testing with WireMock
08:46
234
WireMock for Beer Service
17:55
235
Validation JMS Test Component
14:37
236
Using Awaitility
22:27
237
Resolving Locking Failure
06:03
238
Refactor Beer Order Service to use Saga
04:18
239
Spring Cloud Contract - Interview with Marcin Grzejszczak
06:38
240
Introduction
24:37
241
Testing Failed Validation
00:58
242
Failed Validation Compensating Transaction
07:40
243
Cancel Order Requirements
05:16
244
Cancel Order Configuration
03:28
245
Cancel Order Compensating Transaction
05:01
246
Cancel Order Consumer
05:49
247
Refactoring for Persistence of Status Change
03:28
248
Introduction
05:33
249
The API Gateway Pattern
00:50
250
Developer Oriented API Gateways
11:53
251
Spring Cloud Gateway Service Creation
09:12
252
Spring Cloud Gateway Route Configuration
06:06
253
Review Running Services Locally
11:33
254
Beer Service Route Configuration
06:10
255
Inventory Service Route Configuration
09:28
256
Introduction
05:14
257
Introduction to Eureka
00:57
258
Eureka Service Creation
05:35
259
Eureka Client Configuration for Beer Service
06:05
260
Introduction
05:03
261
Open Feign Client
01:25
262
Configure Gateway for Service Discovery
11:20
263
Introduction
08:45
264
Circuit Breaker Pattern Overview
01:46
265
Resilience4j Failover for Spring Cloud Gateway
03:16
266
Using Hystrix Circuit Breaker with Feign Client
09:20
267
Using Resilience4j with Feign Client
09:46
268
Introduction
01:52
269
Overview of Spring Cloud Config
01:21
270
Create Spring Cloud Config Server
03:14
271
Spring Cloud Config Server Server Configuration
04:56
272
Server Side Application Configuration
09:47
273
Spring Cloud Client Configuration
12:41
274
Introduction
14:07
275
Introduction to Distributed Tracing
01:30
276
Zipkin Server
10:11
277
Setup Spring Cloud Sleuth
02:32
278
Logging Config for JSON
07:48
279
Refactor Zipkin Configuration
06:43
280
Introduction
06:30
281
Security 101
01:50
282
Property Encryption / Decryption
18:34
283
Encrypt Beer Service Passwords
08:22
284
Secure Spring Cloud Config Server
06:52
285
Use Spring Security to Secure Eureka Server
08:41
286
Secure Inventory Service with Spring Security
10:28
287
Configure RESTTemplate for HTTP Basic Authentication
04:13
288
Configure Feign Client for HTTP Basic Authentication
05:23
289
Security Retrospective
06:15
290
Introduction
06:30
291
Requirements and Docker Hello World
01:18
292
Considerations for the JVM in a Docker Container
03:09
293
Overview of Building Docker Containers with Maven
06:16
294
Docker File Configuration
07:03
295
Troubleshoot Spring Boot Bug
10:44
296
Docker Image for Gateway Service
09:23
297
Push Images to Docker Hub
08:32
298
Docker Image Release Demo
04:39
299
Spring Boot Validation Update
07:50
300
Interview with James Labocki of RedHat
03:39
301
Introduction
14:44
302
Docker Compose for JMS Broker
01:34
303
Docker Compose for Zipkin
07:55
304
Docker Compose for Eureka Service & Spring Cloud Config
02:49
305
Docker Compose for Inventory Service
05:24
306
Configure API Gateway
11:17
307
Service Restart Policy
07:14
308
Introduction
05:30
309
Overview
01:23
310
Logging Configuration Update
05:28
311
Add Elasticsearch
03:02
312
Add Kibana
02:58
313
Add Filebeat
01:41
314
View Logs in Kibana
06:12
315
Introduction
07:24
316
Deployment Design
03:37
317
Provision Database Servers
09:28
318
Configure Database
06:24
319
Configure Java Truststore
04:28
320
Add Truststore file to Docker Image
09:10
321
Docker Image Release Process
03:06
322
Provision Service VMs
06:42
323
Configure JMS Server
04:20
324
Configure Elasticsearch Server
03:13
325
Configure Kibana Server
02:35
326
Configure Zipkin Server
06:05
327
Configure Eureka Server
02:13
328
Configure Spring Cloud Config Server
02:55
329
Spring Cloud Config Server IP Address Update
08:36
330
Provision Docker Swarm Cluster
07:10
331
Initialize Docker Swarm Cluster
02:12
332
Filebeat Swarm Configuration
08:55
333
Eureka Swarm Configuration
05:23
334
Spring Cloud Configuration
09:23
335
Digital Ocean Profile
05:31
336
Running Microservices with Docker Swarm
03:33
337
Tracing Requests for Troubleshooting
04:39
338
Zipkin Tracing
05:52
339
Tasting Room Service Challenge
04:19
340
Retrospective
03:04
341
unnamed 341
04:34
342
unnamed 342
12:21

Unlock unlimited learning

Get instant access to all 341 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

RabbitMQ : Messaging with Java, Spring Boot And Spring MVC

RabbitMQ : Messaging with Java, Spring Boot And Spring MVC

Sources: udemy
RabbitMQ : It is an open source message broker software. You might have heard Java Messaging Service (JMS) by which two Java applications can communicate with
4 hours 3 minutes 11 seconds
Learn Spring 5 and Spring Boot 2

Learn Spring 5 and Spring Boot 2

Sources: baeldung
Spring is, by far, the most popular framework for application development in the Java ecosystem. By a wide margin. The reason is actually quite simple - it does a lot of things ...
4 hours 57 minutes 32 seconds
Spring 6 & Spring Boot 3 for Beginners (Includes 5 Projects)

Spring 6 & Spring Boot 3 for Beginners (Includes 5 Projects)

Sources: udemy
In this course, you will learn Spring Framework Core 6, Spring Boot 3, REST API, Spring MVC, WebFlux, Spring Security, Spring Data JPA, Docker, Thymeleaf, IntelliJ IDEA, Maven, ...
34 hours 28 minutes 12 seconds
Event-Driven Microservices, CQRS, SAGA, Axon, Spring Boot

Event-Driven Microservices, CQRS, SAGA, Axon, Spring Boot

Sources: udemy
In this video course, you will learn how to build business logic that spans several distributed Spring Boot Microservices. This course is designed for beginners and we will sta...
8 hours 55 minutes 3 seconds
Spring Boot Microservices and Spring Cloud. Build & Deploy.

Spring Boot Microservices and Spring Cloud. Build & Deploy.

Sources: udemy
This video course is for Beginners who have never build RESTful Web Services and Microservices before. It will guide you step-by-step through basics and will he
20 hours 33 minutes 14 seconds