We may earn an affiliate commission when you visit our partners.
Course image
John Thompson • 500,000+ Enrollments Worldwide and Spring Ahead Code Academy

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.

Read more

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.

What Students are Saying about the Course

5 STARS Great course, you can be sure about it. If you're fairly new to the java world and spring framework, I highly suggest to follow Spring Framework from beginner to guru (the teacher is always John). In my experience I can tell you that after the first course, I managed to progress in my career twice, with praises of my colleagues and managers. The content of both courses is very well explained and easy to learn. If you want to stand out, definitely this course worth the money.

5 STARS Very good course on microservices with Spring. It gave me a good starting point for the upcoming task at my work. 5* all the way for John.

5 STARS I like this course a lot. It's exactly what I needed after some experience with Spring Boot, to go to the next level. A lot of applications are presented, giving the opportunity to exercise what you've learned. The assignments are also very welcomed.

5 STARS Very VERY good content, well structured approach and clear explanations. Very enjoyable and educative. I'm even picking up a few techniques / frameworks I hadn't really used before.

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, the 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

  • Data validation with Spring Boot and Hibernate Validator

  • 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 microservice 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

  • Distributed tracing with Spring Cloud Sleuth and Zipkin

  • Securing Spring Cloud with Spring Security

  • Use Docker to create images for your Spring Boot applications

  • Push your Docker Images to Docker Hub

  • Configure Logback with Logstash for JSON logging output

  • Using Docker Compose to start and stop your microservices

  • Use ELK stack (Elasticsearch, Logstash, Kibana) for consolidated Logging

  • Provision virtual machines in the cloud for Eureka, Apache ActiveMQ Artemis, Spring Cloud Config, Zipkin, Elasticsearch, and Kibana.

  • Provision MySQL databases using Digital Ocean.

  • Create Docker Droplets (aka Virtual Machines) in Digital Ocean

  • Deploy Spring Cloud Config in the the cloud with Eureka

  • Create a Docker Swarm Cluster for Spring Boot Microservices

And much much more.

Inside the Course

  • Links all source code examples (Dozens of GitHub repositories are used for this course. )

  • Challenging Assignments

  • All slides are downloadable as PDFs for your reference and study

Course Extra - IntelliJ IDEA Ultimate

Students enrolling in the course can receive a free 4 month trial license to IntelliJ IDEA Ultimate. Get hands on experience using the Java IDE preferred by Spring Framework professionals.  

Course Extra - Access to a Private Slack Community

You're not just enrolling in a course > You are joining a community learning Spring.

With your enrollment to the course, you can access an exclusive Slack community. Get help from the instructor and other Spring Framework Gurus from around the world - in real time. This community is only available to students enrolled in this course. 

This is a very active Slack community with hundreds Spring Framework Gurus from around the world.

When you enroll in this course, you can join this community of awesome gurus.

Enroll now

What's inside

Learning objectives

  • 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
  • Show more
  • Show less

Syllabus

Learn how to get the most from your Spring Boot Microservices with Spring Cloud course!

Welcome to the Spring Boot Microservices course!

Read more

Learn about the applications you will build in your Spring Boot Microservices course.

In this lecture you will get tips and advice on how to get the most out of your Spring Boot Microservices with Spring Cloud course.

In this lecture you will learn about setting up your development environment for your Spring Boot Microservices with Spring Cloud course.

Join the Slack Group for the Spring Boot Microserviecs course! 

In your Spring Boot Microservices with Spring Cloud course, you will see the IntelliJ Ultimate IDE used. (This IDE is not required to complete the course)

Students enrolling in Spring Boot Microservices with Spring Cloud, can register to get a free 120 trial of IntelliJ IDEA Ultimate.

GitHub Workflow
Learn about what Microservices are and how they are different from traditional applications

Preview of the section of the course Introducing Microservices, and road map overview of upcoming sections.

Learn about traditional monolithic applications

Learn what microservices actually are and how microservices are different from traditional monolithic applications

What is the Cloud?

When companies start using microservices, there are challenges they will face in the transition from traditional monoliths to microservices.

Microservices Quiz

Microservices at a higher level are a design pattern.

12 Factor Applications
Introduction to Microservices Conclusion
Introduction to Restful Web Services
Introduction
HTTP Protocol
HTTP Request Methods
Beginners Guide to REST
Richardson Maturity Model
Spring Framework and RESTFul Services
Quiz - RESTful Web Services
Conclusion
Spring MVC Rest Services
Introducing SFG Beer Works
HTTP GET with Spring MVC
Introduction to Postman
Axis TCPMon
Assignment - Create GET Endpoint with Spring MVC
Assignment - Create Get Endpoint with Spring MVC
Assignment Review
HTTP POST with SpringMVC

Spring Boot has a set of developer tools to help you with you code. In this lecture learn how Spring Boot Developer tools can help with your development activities.

HTTP PUT with Spring MVC
Spring MVC @RequestBody Annotation
HTTP DELETE with Spring MVC
Assignment - HTTP Operations with Spring MVC
API Versioning
API Versioning Example
API Versioning and Source Control

Quiz covering Spring MVC

In this lecture you will learn how to create a new Spring Boot project using the Spring Initializer.

LC Beer Service - Data Model
LC Beer Service - Beer Controller

Spring Boot 2.1 uses JUnit 4. In Spring Boot 2.2, the Spring team moves to JUnit 5, which is used throughout the course.

Conclusion to Spring MVC Rest Services
Learn how Spring Boot provides a configured instance of RestTemplate and how to use it.

In this section you will learn about how Spring Boot automatically configures Spring's RestTemplate.

HTTP GET with Spring RestTemplate
HTTP POST with Spring RestTemplate
HTTP PUT with Spring RestTemplate
HTTP DELETE with Spring RestTemplate
Assignment - Create Spring RestTemplate clients
HTTP Clients
Apache HTTP Client Configuration
Apache Client Request Logging
Assignment - Externalize Properties
LC - JPA Entities
LC - Spring Data JPA Repositories
LC - Bootstrap Data
Conclusion to Spring Boot RestTemplate
Learn about Spring MVC Validation and about Spring Boot specific validation features
Java Bean Validation
Bean Validation Implementation
Validation Error Handling

Spring Boot has several validation features not found in Spring MVC. Learn about Spring Boot's method validation in this lecture.

Assignment - Add Validation and Error Handling
Spring MVC Controller Advice
LC - Bean Validation
LC - Validation and Error Handling
Conclusion to Spring MVC Validation
When developing Spring Boot Microservices Project Lombok and MapStruct are important tools used to reduce boiler plate code.
Overview of Project Lombok
Project Lombok Configuration
Project Lombok Examples
Overview of MapStruct
MapStruct Configuration
Example of using Project Lombok and MapStruct
Assignment - Use MapStruct
Date Conversion with MapStruct
LC - Implementing MapStruct
LC - Fixing Broken Tests
LC - Adding CI Builds with CircleCI
Spring MVC REST Docs
Spring REST Docs Introduction

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides an overview of Microservices and their key concepts, which is useful for developing distributed systems
Builds a solid understanding of Microserivces architecture and its implementation using Spring Boot and Spring Cloud
Applies Microservices design principles to real-world scenarios
Incorporates a practical approach through hands-on exercises and assignments to reinforce learning
Provides a thorough understanding of Spring Framework and its key components for Microservices development
Covers advanced topics such as deployment, configuration, and monitoring, enabling learners to develop and manage robust Microservices systems

Save this course

Save Spring Boot Microservices with Spring Cloud Beginner to Guru to your list so you can find it easily later:
Save

Reviews summary

Comprehensive spring boot microservices course

Learners say this course is a comprehensive beginner-to-guru guide on developing microservices using Spring Boot and Spring Cloud. It features engaging assignments, helpful quizzes, and a detailed explanation of core concepts with practical examples.
Assignments are challenging and help understanding.
"The assignments are challenging and help you to understand the concepts better."
Quizzes test understanding and reinforce learning.
"The quizzes are very helpful to test your understanding of the concepts."
Course explains concepts clearly with examples.
"The course is very well-structured and the explanations are very clear."
Instructor is knowledgeable and experienced.
"Tendo anteriormente seguido alguns videos do formador noutras plataformas, fiquei agradado com a melhoria na qualidade dos mesmos e da forma como os conteúdos são apresentados."
Course uses hands-on exercises to reinforce concepts.
"The course is very practical, with lots of hands-on exercises."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Spring Boot Microservices with Spring Cloud Beginner to Guru with these activities:
Connect with Microservices Experts
Enhance your learning by seeking guidance and support from experienced microservices developers and architects.
Browse courses on Microservices
Show steps
  • Identify potential mentors through online forums, professional networks, or conferences.
  • Reach out to potential mentors, expressing your interest in learning about microservices and seeking their guidance.
  • Establish regular communication channels with your mentor, such as scheduled meetings or online discussions.
HTTP Response Code Quiz
Reinforce your knowledge and understanding of different HTTP status codes you encounter when calling an API.
Browse courses on HTTP
Show steps
  • Access online resources and study different HTTP response codes, such as 2xx Success, 4xx Client Error, 5xx Server Error, etc.
  • Take online quizzes or practice exercises to test your knowledge and identify different HTTP status codes based on given scenarios or error messages.
HTTP Request and Response Header Analysis
Develop a deeper understanding of HTTP request and response headers, which are essential for troubleshooting and optimizing API performance.
Browse courses on HTTP
Show steps
  • Use tools such as Postman or Chrome DevTools to capture and inspect HTTP requests and responses.
  • Analyze the different headers involved, such as Content-Type, Accept, Authorization, etc., and their purpose.
  • Experiment with modifying request headers to observe how they affect the server's response.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Microservices Patterns
Expand your knowledge of microservices design and implementation by reading a seminal work that explores common patterns and best practices.
Show steps
  • Obtain a copy of the book, either physically or through an online library.
  • Read the book thoroughly, taking notes and highlighting important concepts.
  • Apply the patterns and best practices described in the book to your own microservices projects.
Microservice Architecture Design Document
Demonstrate your understanding of microservice design principles and best practices by creating a comprehensive architecture design document.
Browse courses on Microservices
Show steps
  • Identify the different components of your microservice system, including the services, their responsibilities, and their interactions.
  • Describe the communication mechanisms between the microservices, such as REST APIs, message queues, or event-driven architectures.
  • Consider scalability, fault tolerance, and deployment strategies for your microservices.
  • Document the design decisions and trade-offs made during the architecture design process.
Personal Microservices Project
Solidify your understanding of microservices by building your own personal project, allowing you to apply the concepts and technologies covered in the course.
Browse courses on Microservices
Show steps
  • Identify a problem or opportunity that can be addressed using a microservices approach.
  • Design and architect your microservices system, considering scalability, fault tolerance, and communication mechanisms.
  • Implement your microservices using Spring Boot and related technologies.
  • Deploy your microservices application to a cloud platform or on-premises infrastructure.
  • Monitor and maintain your microservices application, ensuring its availability and performance.
Contribute to Spring Boot or Spring Cloud Projects
Gain practical experience and contribute to the wider community by participating in open-source projects related to Spring Boot or Spring Cloud.
Browse courses on Spring
Show steps
  • Identify open-source projects related to Spring Boot or Spring Cloud that align with your interests.
  • Review the project's documentation and contribute to discussions or issue tracking.
  • Submit pull requests with bug fixes, feature enhancements, or documentation improvements.
  • Participate in community discussions and provide support to other contributors.
Spring Boot Microservices Hackathon
Challenge yourself in a hackathon environment to build and deploy a microservices application, addressing real-world scenarios and showcasing your skills.
Browse courses on Microservices
Show steps
  • Form a team or participate individually in a hackathon focused on Spring Boot microservices.
  • Design and develop a microservices solution that meets the hackathon's requirements.
  • Implement best practices for microservices architecture, such as service discovery, load balancing, and fault tolerance.
  • Deploy your microservices application to a cloud platform or on-premises infrastructure.
  • Present your solution, demonstrating its functionality and addressing the hackathon's challenges.

Career center

Learners who complete Spring Boot Microservices with Spring Cloud Beginner to Guru will develop knowledge and skills that may be useful to these careers:
Microservices Architect
Microservices Architects design and manage microservices-based systems. This course may be useful for Microservices Architects because it provides a comprehensive overview of microservices architecture and the Spring Boot framework. This knowledge can help Microservices Architects build and manage scalable, reliable, and secure microservices-based applications.
Java Developer
Java Developers are responsible for developing software applications using the Java programming language. This course may be useful for Java Developers because it provides a deep dive into Spring Boot, a framework for developing microservices in Java. This knowledge can help Java Developers build and maintain scalable, reliable, and secure microservices-based applications.
Software Architect
Software Architects design and manage the architecture of software systems. This course may be useful for Software Architects because it provides a comprehensive overview of microservices architecture and the Spring Boot framework. This knowledge can help Software Architects build and maintain scalable, reliable, and secure microservices-based applications.
Software Developer
Software Developers are responsible for developing software applications. This course may be useful for Software Developers because it provides a deep dive into Spring Boot, a framework for developing microservices in Java. This knowledge can help Software Developers build and maintain scalable, reliable, and secure microservices-based applications.
Web Developer
Web Developers are responsible for developing and maintaining websites. This course may be useful for Web Developers because it provides a deep dive into Spring Boot, a framework for developing microservices in Java. This knowledge can help Web Developers build and maintain scalable, reliable, and secure microservices-based web applications.
Full-Stack Developer
Full Stack Developers are responsible for developing both the front-end and back-end of web applications. This course may be useful for Full Stack Developers because it provides a comprehensive overview of microservices architecture and the Spring Boot framework. This knowledge can help Full Stack Developers build and maintain scalable, reliable, and secure microservices-based applications.
VP of Engineering
VPs of Engineering are responsible for leading and managing software development teams. This course may be useful for VPs of Engineering because it provides a comprehensive overview of microservices architecture and the Spring Boot framework. This knowledge can help VPs of Engineering make informed decisions about how to implement microservices in their organizations.
Product Manager
Product Managers are responsible for managing the development and launch of new products. This course may be useful for Product Managers because it provides a deep dive into Spring Cloud, a framework for developing and deploying microservices in the cloud. This knowledge can help Product Managers make informed decisions about how to implement microservices in their products.
Cloud Architect
Cloud Architects design and manage cloud computing systems. This course may be useful for Cloud Architects because it provides a deep dive into Spring Cloud, a framework for developing and deploying microservices in the cloud. This knowledge can help Cloud Architects build and manage scalable, reliable, and secure microservices-based applications.
Systems Analyst
Systems Analysts are responsible for analyzing and designing business systems. This course may be useful for Systems Analysts because it provides a comprehensive overview of microservices architecture and the Spring Boot framework. This knowledge can help Systems Analysts design and implement scalable, reliable, and secure microservices-based systems.
Technical Lead
Technical Leads are responsible for leading and managing software development teams. This course may be useful for Technical Leads because it provides a comprehensive overview of microservices architecture and the Spring Boot framework. This knowledge can help Technical Leads make informed decisions about how to implement microservices in their teams' projects.
UX Designer
UX Designers are responsible for designing the user experience of software applications. This course may be useful for UX Designers because it provides a deep dive into Spring Cloud, a framework for developing and deploying microservices in the cloud. This knowledge can help UX Designers understand the technical constraints of microservices and design user experiences that work well with microservices-based applications.
Operations Research Analyst
Operations Research Analysts use mathematical and analytical techniques to solve business problems. This course may be useful for Operations Research Analysts because it provides a hands-on approach to deploying and managing microservices in a production environment. This knowledge can help Operations Research Analysts build and maintain scalable, reliable, and secure microservices-based applications.
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations teams. This course may be useful for DevOps Engineers because it provides a hands-on approach to deploying and managing microservices in a production environment. This knowledge can help DevOps Engineers automate the deployment process, monitor microservices, and troubleshoot issues.
Chief Information Officer
The Chief Information Officer (CIO) is responsible for developing and executing an organization's information technology strategy. This course may be useful for CIOs because it provides a comprehensive overview of microservices architecture and the Spring Boot framework. This knowledge can help CIOs make informed decisions about how to implement microservices in their organizations.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Spring Boot Microservices with Spring Cloud Beginner to Guru.
Provides a deep dive into the characteristics of microservices, describing architectural patterns for building and managing them.
A practical guide to designing and developing RESTful web services using various tools and technologies.
Provides a comprehensive overview of Java 8 features, including lambda expressions, streams, and optional types.
Covers the principles and techniques of designing and building data-intensive applications, including data storage, processing, and analysis.
A comprehensive guide to the Apache Kafka distributed streaming platform, covering its architecture, administration, and use cases.
Covers the fundamentals of cloud native development using Java, including containerization, serverless computing, and microservices.
Provides a comprehensive framework for designing and developing software using domain-driven design principles, including domain modeling and bounded contexts.
Covers the concepts and techniques of Spring Data JPA, a framework for data access using Java Persistence API (JPA) in Spring Boot applications.
A classic book on writing effective and reusable Java code, covering topics such as object-oriented design, concurrency, and performance.
A guide to designing software systems using clean architecture principles, emphasizing separation of concerns and dependency inversion.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Spring Boot Microservices with Spring Cloud Beginner to Guru.
Spring Boot 3 Fundamentals
Most relevant
Master Microservices with Spring Boot and Spring Cloud
Most relevant
Microservices with Spring Cloud
Most relevant
Java Microservices with Spring Cloud: Developing Services
Most relevant
Spring Boot Microservices and Spring Cloud. Build &...
Most relevant
Microservices with Spring Boot
Most relevant
Building Scalable Java Microservices with Spring Boot and...
Most relevant
Event-Driven Microservices: Spring Boot, Kafka and Elastic
Most relevant
Spring Framework 6: Beginner to Guru
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser