Welcome to My Spring Boot Project! This project covers various topics related to building microservices using Spring Boot with Java. The project is divided into multiple applications using modules, each focusing on a specific topic.
- Simple App - This module contains a simple Spring Boot application demonstrating basic CRUD operations for a Book entity.
- Transactional - This module contains a simple application demonstrating the behaviour of @Transactional annotation.
- Eureka Service Discovery - This application demonstrates the use of Eureka Server, Uses Service One and Service Two to see if they are discoverable or not.
- API Gateway - This application acts as a gateway for multiple services, and also discoverable by Eureka server. Uses the Server and Services from above Eureka application.
- Config Server - Using Config Server to fetch DB Configurations from GitHub Repository in the application Book Service which is consumed by Book Rest Client.
- Department Service consumes Employee Service using RestTemplate, fetches the Department by ID with all the employees belonging to that department.
- Hystrix Server - This application demonstrates hystrix which provides a fault tolerance mechanism for services, handles HTTP requests and implements fallback methods.
- Resilience4j - This application demonstrates how to use Resilience4j for resilience and fault tolerance in microservices architecture. Uses Order Service Application.
- Security - This is a simple Spring Boot application demonstrating security using Spring Security.
- Zipkin Server - This application demonstrates a Zipkin Server implementation to enable distributed tracing.
- Zuul Proxy Gateway - This application demonstrates dynamic routing and filtering through Zuul proxy server.
You can find all the basic docker commands here.
- Simple Java - This project demonstrates how to use Dockerfile to build and run a Simple Java application in docker container.
- Spring Rest - This project demonstrates how to use Dockerfile to build and run a Spring boot rest application in docker container at desired port.