
Discover how to build microservices with Spring Boot and Spring Cloud, create REST APIs, manage config, enable service discovery and tracing, and integrate React frontend with Kafka and RabbitMQ messaging.
Netflix migrated from a monolith to microservices to handle internet-scale traffic, enabling independent services, faster deployments, and resilience with Chaos Monkey.
Install java jdk 25 on Windows 11 by downloading from Oracle, running the installer, configuring JAVA_HOME and PATH, and verifying with java -version.
Download the free IntelliJ IDEA Community Edition from the site and install it on Windows 11, then launch the IDE and accept the user agreement for JVM and Android development.
Install and configure MySQL server and MySQL Workbench on Windows 11, guiding through download, custom setup, root password, port 3306, and creating a demo database.
Install postman on windows 11, sign up with google, and begin testing rest APIs by creating requests, configuring workspace, and using http methods, headers, and bodies.
Understand how APIs enable communication between software systems, explain REST API rules, describe HTTP methods GET, POST, PUT, DELETE, and illustrate JSON data exchange.
Explore the six REST architectural constraints—client-server, statelessness, cacheability, uniform interface, layered system, and optional code on demand—and see how they keep APIs reliable, scalable, and easy to use.
Explore resources, sub-resources, and URIs in REST APIs, with examples like pizzas, orders, and reviews, and learn how URLs structure and access related data.
Explore how the four core http methods get, post, put, and delete drive rest api interactions, including reading data, creating resources, updating existing information, and removing resources.
Explore how servers respond to restful requests using http status codes, including 200, 201, 204, 400, 401, 404, 500, and 503, plus 3xx redirection and 1xx informational categories.
Identify rest resources by describing data, assigning unique IDs, and enabling create, read, update, delete actions; explore sub-resources like order items and blog comments.
Design rest urls by focusing on nouns and plural resources, not actions. Use path parameters for item ids, sub resources for relationships, and lowercase hyphenated slugs with versioning.
Discover how to assign right http methods to rest resources, using get for retrieving data, post for creating, put for full updates, patch for partial updates, and delete for removal.
Design clean and consistent JSON responses that clearly represent REST API resources. Return resources as flat objects or arrays with descriptive keys, and provide structured error responses.
Design rest APIs with subresources to model real-world relationships, using parent-child paths like users/15/addresses and products/42/reviews to capture one to many relations and keep endpoints clear.
Master RESTful API design by naming resources with plural nouns and using plural endpoints like /users and /pizzas. This builds consistency and clarity for collections and items.
Use content type and accept HTTP headers to declare request and response formats, typically JSON, ensuring consistent, predictable, and interoperable REST API behavior.
Explore rest api status codes and apply best practices by using 200, 201, 204, 400, 401, 403, 404, 405, 500, 502, and 503 to clearly communicate request outcomes.
Explore the real differences between get and post in rest api, covering data retrieval versus submission, visibility in the url versus the body, idempotency, caching, data limits, and security considerations.
Learn when to use post for creating new resources and when to use put for updating or replacing resources at a known uri, highlighting idempotency and expected responses.
Put fully replaces a resource, while patch updates only the specified fields. Patch is lighter and more efficient but requires careful implementation to maintain idempotence and avoid data loss.
Compare http and https, showing how https uses ssl/tls encryption, certificates, and a browser padlock to ensure privacy and trust; explain when to use each for security, performance, and seo.
Compare rest and soap to decide API approaches for microservices, outlining architecture, formats like json and xml, transport, performance, security, and enterprise use cases.
Compare REST and GraphQL for API development, detailing endpoints, single vs multiple access, query shape, versioning, tooling, performance, and suitable use cases.
Master spring boot rest api basics and key spring mvc annotations including @RestController, @GetMapping, @PostMapping, @RequestBody, and @RequestMapping to build and return json Java beans and lists, with ResponseEntity.
Create a Spring Boot rest api project with Spring Initializr, import it into IntelliJ, add the Spring Web Starter, and run on the embedded Tomcat server at port 8080.
Create a simple Spring Boot hello world rest API using Spring MVC, map a GET request with @GetMapping to /hello-world, and return Hello World as JSON on port 8080.
Create a Spring Boot REST API that returns a Java bean as JSON by defining a student with id, first name, and last name, exposed via get mapping at /student.
Develop a Spring Boot REST API that returns a list of students as JSON, using getStudents and @GetMapping, mapped to /students and tested on port 8080.
Create a Spring Boot REST API that handles path variables with @PathVariable, binding URI template variables to method arguments, and test it in a browser.
Create a spring boot REST API that uses @RequestParam to extract query parameters from a URL, handling single and multiple parameters with @GetMapping.
Create a Spring Boot REST API that handles HTTP POST requests using @PostMapping and @RequestBody to convert incoming JSON into a Student object, returning 201 created.
Build a Spring Boot REST API that handles HTTP PUT requests to update resources, using @PutMapping, @PathVariable, and @RequestBody to map JSON, and understand 200 versus 201 status.
Create a Spring Boot REST API that handles HTTP delete requests with @DeleteMapping, binds the id via @PathVariable, and returns a 200 OK response tested via Postman.
Learn how to use ResponseEntity to fully configure HTTP responses for Spring Boot REST APIs, including status codes, headers, and body, with ok() and 201 created examples.
Define a class-level base URL for REST APIs in Spring MVC using @RequestMapping, simplifying endpoints in the StudentController and validating through Postman calls and HTTP status codes.
Hit a spring boot rest API endpoint; embedded Tomcat routes the request through the dispatcher servlet and handler mapping to the controller, which converts the result to JSON or XML.
Compare @Controller and @RestController in Spring Boot to clarify their view versus data responses. Use @Controller for html views and templates, and @RestController for json apis and xml responses.
Develop a rest api with Spring MVC, Spring Boot, and Spring Data JPA against a MySQL database using a three-layer architecture for user management, testing APIs with Postman.
Create a Spring Boot project in IntelliJ with Spring Initializr and Maven, using Java 17 and Spring Boot 3, including Web, MySQL, JPA, Lombok, and controller, service, entity, repository packages.
Configure a MySQL database in a Spring Boot app by creating user_management and defining the JDBC URL, credentials, and dialect in application.properties, using ddl-auto=update for automatic schema updates.
Create a user JPA entity with Lombok annotations, annotate it as an entity and table, configure id generation and column constraints, and verify the users table is created by Hibernate.
Create a Spring Data JPA repository for the User JPA entity by extending JpaRepository with user and long id to gain CRUD methods, implemented by SimpleJpaRepository with transactional defaults.
Create a users rest API in a three-layer Spring Boot app by implementing a UserService and UserController, wiring with @AllArgsConstructor, and exposing POST /api/users to save users.
Build a get user by id rest api in Spring Boot by implementing getUserById in the service and exposing it via @GetMapping /api/users/{id} with PathVariable and ResponseEntity<User> returning http 200.
Implement a get all users rest api by updating the service and controller layers, using UserRepository.findAll and exposing with @GetMapping at /api/users, returning 200 ok.
Define and implement updateUser in the service and controller layers, fetch the existing user, update first name, last name, and email, save changes, and test via Postman.
Implement the delete user rest api by updating the service and controller layers, calling repository.deleteById, and returning a 200 response with user successfully deleted. Test via Postman against http://localhost:8080/api/users/{id}.
Learn how the data transfer object (DTO) pattern enables efficient client and server communication by aggregating related data into a single response and reducing remote calls.
Explore dto pattern in spring boot for client–server data transfer. Avoid jpa entities; expose only required data and reduce remote calls with a single dto.
Refactor the create user rest api to use a user dto for data transfer, and introduce dto-to-entity conversion and future mapper class for reuse.
Create a user mapper class to consolidate common mapping logic between UserDto and User entity, and refactor the createUser flow to use mapToUserDto and mapToUser in the service.
Refactor the get user by id rest api to return a user dto by updating the controller, service, and mapper to convert user entities via userMapper.mapToUserDto, then test with postman.
Refactor the get all users API to return a list of UserDto by updating the return type, service, and controller, and mapping entities with UserMapper.
Refactor update user rest api to use dto by changing return type and parameters to user dto, mapping with user mapper; validate with postman and database update.
Disclaimer:
"This course requires you to download Docker Desktop from the official Docker website. If you are a Udemy Business user, please check with your employer before downloading software."
In this course, you will learn to building Microservices using Java, Spring Boot, Spring Cloud, React, Kafka, RabbitMQ, Docker, and REST API (REST Web Services).
Important Note: This course supports the latest Spring Boot 3 and Spring Cloud 2022.0.0.
In this course, we will follow the real-time industry-standard project development approach.
This course covers Spring Boot REST API development from scratch.
This course covers the REST API fundamentals from scratch.
Added new sections to master building REST APIs for Banking App and Employee App.
Added new section to master building REST APIs for One-to-Many relationship - very important in the real-world projects.
Microservices:
A Microservice is a service built around a specific business capability that can be independently deployed. So, to build large enterprise applications, we can identify the sub-domains of our main business domain and build each sub-domain as a MicroService using Domain-Driven Design (DDD) techniques. But in the end, we need to make all these microservices work together to serve the end user as if it were a single application.
Why are Spring Boot and Spring Cloud good choices for MicroServices?
Spring Boot is the most popular and widely used Java framework for building Microservices. These days, many organizations prefer to deploy their applications in a Cloud environment instead of taking on the headaches of maintaining a data center themselves. However, we need to take good care of the various aspects of making our applications Cloud-Native. There comes the beauty of Spring Cloud.
Spring Cloud is essentially an implementation of various design patterns for building Cloud-Native applications. Instead of reinventing the wheel, we can simply take advantage of various Spring Cloud modules and focus on our main business problem rather than worrying about infrastructural concerns.
What you'll learn
Build RESTful web services using Spring Boot - Learn Important Spring MVC Annotations.
Build CRUD REST APIs using Spring Boot, Spring Data JPA, and MySQL Database.
Master building REST APIs for Banking App and Employee App.
Master building REST APIs for One-to-Many relationship - very important in the real-world projects.
Building Spring Boot Microservices in IntelliJ IDEA
Microservices Communication using RestTemplate, WebClient, and Spring Cloud OpenFeign
Create Service Registry and Discovery using Spring Cloud Netflix Eureka
Load balancing with Eureka server and Open Feign using Spring Cloud LoadBalancer
Create an API Gateway using Spring Cloud Gateway
Centralized Configurations using Spring Cloud Config Server
Auto Refresh Config Changes using Spring Cloud Bus
Distributed Tracing with Spring Cloud Sleuth and Zipkin
Resilience4J: Circuit Breaker, Retry, and RateLimiter Patterns
Adding a Step-by-Step New Microservice to an Existing Project
Create React Frontend Microservice and Integrate with Backend Microservices
Learn How to Migrate Existing Projects to the Latest Version
Learn How to Generate REST API Documentation
Dockering Spring Boot Application Step-by-Step
Dockering Spring Boot MySQL CRUD Application Step-by-Step
Docker Compose for Dockerizing Spring Boot MySQL CRUD Application Step-by-Step
Event-driven Microservices using Spring Boot and Kafka
Learn how to use RabbitMQ in the Spring Boot app.
Learn how to use Kafka in a Spring Boot app.
Kafka Spring Boot - Real-World Wikimedia Project Development
Event-driven Microservices using Spring Boot and RabbitMQ
Build a Spring Boot React JS Full-Stack CRUD Web Application
Learn Functional Programming in Java
Tools and technologies used:
1. Java 17+
2. Spring Boot
3. Spring Cloud
4. Microservices
5. React
6. Resilience4J framework
7. Maven
8. IntelliJ IDEA
9. MySQL database
10. Postman
11. Kafka
12. RabbitMQ
13. Docker
Sample amazing feedback from students on this course:
Francis Dahryl N:
" One of the best learning videos. Ramesh, the instructor, will guide every student until the end."
Juan Paulo L:
"Amazing course, well structured, well documented, resourceful, if you really want to learn about microservices, spring boot and spring cloud you have to take this course now!"
Tirtha S:
"One of the best course for Microservices. Extraordinary explanations to the point. Thank you for providing us such a great course and helping us to gather the knowledge which we are required to know about microservices architecture. You are the best and Thank you once again."
Lakshman M:
"I always admire you sir. You are an Inspiration & Guide to many Java Developers. Keep Doing More Udemy Courses Sir. Thank you"
Furkan P:
"This course teaches everything you need to start with microservices. You need a Java/Spring Boot background to follow up well! Great one!"
Harsh S:
"it is very good course if you want to get your hand dirty in the spring boot microservices"
Vivek Yuvraj Pawar:
"In this course the explanation is above my expectations. in this course all concepts are deeply explained"
Sagar Talagatti:
"Instructor explains the concepts very well and demonstrates with appropriate examples. Thank you for such a good course."
ds r:
"I have no words to describe how amazing this course is. Ramesh has explained everything in such an easy to understand manner. This course covers tremendous amount of great content at one single place. After building the Restful APIs, CRUD operations, building different microservices, spring cloud features etc., he included a step to create docker file and run everything in container. Also, two other projects about Spring Kafka and RabbitMQ are included as bonus! My only suggestion would be to include another video that shows how everything can be deployed on AWS EKS. This is the best microservices course on Udemy. Period."
Priya Chondke:
"its all good covered all topics in easiest way thank you for such an excellent course"
Check out all the reviews/ratings for this course in the Reviews section of this course.