
Go through this document to find the details about the Git Repo and the code used in this course
Learn how dependency injection in spring applies inversion of control to let the framework manage bean creation and injection, reducing manual object handling and garbage collection.
Use spring initializr to create a spring boot maven project in java, select packaging jar and dependencies like spring web, and learn to generate, explore, and share the url.
Install and open the IntelliJ IDEA community edition, open the downloaded Spring Boot project, install dependencies, and run the app on embedded Tomcat port 8880 to verify locally.
Define mandatory path variables in Spring Boot routes, map dynamic segments with @PathVariable, support multiple path variables, and rename captured values to method parameters.
Explore how to use path variables and request parameters in Spring Boot endpoints, including mandatory versus optional data, default values, and query parameter handling.
Create an employee resource with a rest controller, a service interface and implementation, and an in-memory store; implement a post endpoint to save employees and generate IDs.
Create a custom employee not found exception and throw it when data is missing, then use a controller advice to return a 404 with status and message.
Content negotiation lets a Spring Boot REST API return JSON or XML based on a media type parameter, defaulting to JSON, with a global WebConfig and Jackson XML dependency.
Create a product service using spring visualizer with maven and java, add web, jpa, mysql, lombok, cloud deps, switch to yaml configuration, and scaffold controller, service, repository, and entity layers.
Learn how to wire a Eureka service registry client into a product service using Spring Cloud, add dependencies, configure application YAML, and verify discovery.
Create a centralized config server to eliminate redundant configuration across microservices, connecting product and order services to a GitHub-based repository, enabling consistent, scalable configuration management.
create a spring config server by scaffolding a boot project, adding the config server and eureka dependencies, enabling the server, and wiring a git-backed configuration repository.
Declare and enable a Feign client to call the product service reduce quantity API from the place order service, mapping a product service client and invoking it before persisting orders.
Call doPayment API from the order service via a feign client to complete payment, build a payment request, and update the order status from created to placed or payment failed.
Implement rate limiting in the api gateway using resilience4j and redis to cap requests per user per second, protecting apis from DDoS attacks.
Add interceptors to Feign client and RestTemplate to automatically attach OAuth2 tokens as authorization headers for requests to the payment and product services.
Implement security for payment and product services by adding springboard security and Okta springboard starter, then configure a web security filter chain enforcing JWT authentication with scope internal.
Implement Spring security across product and order services by configuring a web security filter chain, enabling global method security, and using pre authorize rules for admin, customer, and internal scope.
Test spring security across microservices by validating okta-based access tokens and auth-code based flows in request headers, enforcing role-based access, with postman verification and 401 errors for invalid tokens.
Go through this document to find the details about the Git Repo and the code used in this course
Implement a resource server in the payment service by mirroring the product service security: enable method security, secure endpoints with pre authorize for admin and customer, and validate tokens.
Implement the place order and test its success scenario by mocking product and payment services, then save and verify the order with the order service and repository.
Annotate and generate an integration test for the order controller using Spring Boot, MockMvc, and test configurations, wiring a test service registry with payment and product service instances.
Implement a test case for placing an order with admin authority, expecting a 403 forbidden response, using mock MVC to validate both forbidden and successful scenarios.
This course requires you to download Docker Desktop from the official docker site. If you are a Udemy business user, please check with your employer before downloading the software.
Do you want to Learn to Build an Amazing REST API with Spring Boot? Do you want to learn what the Hype about Microservices is all about? Do you want to Build Microservices with Spring Boot and Spring Cloud? Do you want to Build Containers with Docker? Do you want to orchestrate Microservices with Kubernetes? Look no further!
What is microservices architecture and how is it different from monolithic and SOA architectures
How to build production-ready microservices using Spring, SpringBoot, and Spring Cloud
Configuration management in microservices using Spring Cloud Config Server
Service Discovery and Registration pattern inside microservices and how to implement using Spring Eureka server
Building resilient microservices using the RESILIENCE4J framework
Handling Cross-cutting concerns and routing inside microservices using Spring Cloud Gateway
Implementing Distributed tracing & Log aggregation in microservices using Spring Sleuth and Zipkin
Role of Docker in microservices and how to build docker images, containers
Most commonly used Docker commands
Role of Kubernetes in microservices as a container orchestration framework.
How to setup a Kubernetes cluster and deploy microservices inside it
The most commonly used Kubernetes commands
Microservices Security using OAuth2 and Okta
Unit testing for all layers in Microservices
CI/CD Pilepile with Jenkins for the deployment of Microservices
GCP Cloud Platform as a Cloud provider for deploying Microservices to Cloud using CI/CD Pipeline
The pre-requisite for the course is basic knowledge of Java and an interest in learning.