Spring Boot Microservices with Spring Cloud Beginner to Guru

34h 14m 34s
English
Paid
November 21, 2023

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.

More

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 Spring Boot Microservices with Spring Cloud Beginner to Guru

Join premium to watch
Go to premium
# Title Duration
1 Welcome to Spring Boot Microservices! 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

Similar courses to Spring Boot Microservices with Spring Cloud Beginner to Guru

Learn Spring 5 and Spring Boot 2

Learn Spring 5 and Spring Boot 2baeldung

Duration 4 hours 57 minutes 32 seconds
OAuth 2.0 in Spring Boot Applications

OAuth 2.0 in Spring Boot Applicationsudemy

Duration 10 hours 54 minutes 34 seconds
Spring Boot Microservices and Spring Cloud

Spring Boot Microservices and Spring Cloududemy

Duration 18 hours 8 minutes 21 seconds