Skip to content

shikhilrane/Spring_Boot_Learning

Repository files navigation

πŸš€ Spring Boot Backend Engineering Journey

Java Spring Boot Docker Kubernetes Kafka License

This repository documents my journey of mastering Spring Boot and Backend Engineering from fundamentals to advanced microservices architecture.

The course covers enterprise backend development concepts, including:

  • REST APIs
  • Security
  • Microservices
  • Distributed Systems
  • DevOps
  • Cloud Deployment

πŸ“‘ Table of Contents


πŸ§‘β€πŸ’» Tech Stack

Backend

  • Java
  • Spring Framework
  • Spring Boot
  • Spring MVC
  • Spring Data JPA
  • Hibernate
  • Spring Security
  • Spring Cloud

Database

  • H2 (In-Memory Database)
  • MySQL
  • PostgreSQL
  • Redis

Messaging

  • Apache Kafka

DevOps & Cloud

  • Docker
  • Kubernetes
  • AWS
  • CI/CD Pipelines

Testing

  • JUnit
  • Mockito
  • Integration Testing
  • TestContainers

πŸ“š Course Modules

Module 1 – Introduction to Spring & Spring Boot

  • Introduction to Spring Framework
  • Setting up Spring Boot Project
  • Spring Beans
  • Dependency Injection
  • Spring Boot vs Spring Framework
  • Auto Configuration
  • Application Context
  • Maven Build Tool

Module 2 – Spring Boot MVC & REST APIs

  • Spring MVC Architecture
  • Tomcat & DispatcherServlet
  • Controllers & DTO
  • Service Layer Architecture
  • Persistence Layer
  • PUT, PATCH, DELETE APIs
  • Input Validation
  • Exception Handling
  • API Response Transformation
  • Java Streams & Lambda

Module 3 – Hibernate & Spring Data JPA

  • Installing MySQL & Database Setup
  • Hibernate ORM
  • Entities & Tables
  • JPA Repositories
  • Dynamic Query Methods
  • Pagination & Sorting
  • Projection
  • Entity Lifecycle
  • OneToOne, OneToMany, ManyToMany
  • Cascading
  • Fetch Types
  • N+1 Query Optimization

Module 4 – Production Ready Spring Boot

  • Spring Boot DevTools
  • Auditing with Hibernate Envers
  • Third Party API Integration
  • Logging in Spring Boot
  • Spring Boot Actuator
  • Swagger & OpenAPI Documentation

Module 5 – Spring Security Fundamentals

Security concepts covered:

  • CSRF
  • XSS
  • SQL Injection

Topics:

  • Spring Security Architecture
  • Security Filter Chain
  • JWT Authentication
  • Login & Signup with JWT
  • Request Authentication

Module 6 – Advanced Spring Security

  • Refresh Tokens
  • Access Tokens
  • OAuth2 Login (Google)
  • Session Management
  • Role Based Authorization
  • Permissions & Authorities
  • Method Level Security

Module 7 – Spring Boot Testing

  • Unit Testing
  • Integration Testing
  • JUnit Framework
  • AssertJ Library
  • Mockito Mocking
  • TestContainers
  • Code Coverage using Jacoco

Module 8 – Deployment & CI/CD

  • AWS RDS Setup
  • Spring Profiles
  • Deployment on AWS Elastic Beanstalk
  • Load Balancers
  • Auto Scaling
  • CI/CD using AWS CodePipeline
  • Database Migration using Flyway

Module 9 – Spring AI & RAG

  • Generative AI Basics
  • Spring AI
  • ChatClient
  • Embeddings
  • Vector Search
  • Retrieval Augmented Generation (RAG)
  • Tool Calling

Module 10 – Aspect Oriented Programming (AOP)

  • AOP Concepts
  • Pointcuts
  • Advice
  • Spring Proxies
  • Real World Use Cases

Module 11 – Caching & Transaction Management

  • Spring Boot Caching
  • Redis Cache
  • ACID Properties
  • Transaction Management
  • Isolation Levels
  • Optimistic & Pessimistic Locks

Module 12 – Microservices Architecture

  • Microservices Fundamentals
  • Service Registration with Eureka
  • API Gateway
  • Feign Client
  • Resilience4j
  • Circuit Breaker
  • Retry
  • Rate Limiting

Module 13 – Advanced Microservices

  • API Gateway Filters
  • Centralized Config Server
  • Dynamic Configuration Refresh
  • Distributed Tracing (Zipkin)
  • Centralized Logging (ELK Stack)

Module 14 – Apache Kafka

  • Kafka Fundamentals
  • Kafka Architecture
  • Kafka with Spring Boot
  • Schema Registry
  • Event Driven Architecture

Module 15 – Docker

  • Docker Fundamentals
  • Docker Installation
  • Dockerfile
  • Docker Images
  • Docker Compose
  • Containerized Microservices

Module 16 – Kubernetes

  • Kubernetes Architecture
  • Minikube Setup
  • Pods
  • Deployments
  • ReplicaSets
  • Services
  • Persistent Volumes
  • StatefulSets

Module 17 – Advanced Kubernetes

  • Google Kubernetes Engine (GKE)
  • Kubernetes DNS
  • Ingress Controllers
  • ConfigMaps
  • Secrets
  • Kubernetes CI/CD

Module 18 – Async Processing

  • Java Executor Framework
  • Task Scheduling
  • Async Tasks
  • Tomcat Threading Model
  • Image Upload Service (Cloudinary + Google Cloud Storage)

🧠 Projects Built

Airbnb Backend System

Features:

  • Hotel Management APIs
  • Booking System
  • Search System
  • Payment Integration
  • Dynamic Pricing
  • Secure Authentication

LinkedIn Microservices System

Features:

  • Microservices Architecture
  • Service Discovery
  • API Gateway
  • Distributed Logging
  • Kafka Messaging
  • Kubernetes Deployment

🧩 Architecture Covered

  • Monolithic Architecture
  • Layered Architecture
  • Microservices Architecture
  • Event Driven Architecture

πŸ›  Tools Used

  • IntelliJ IDEA
  • MySQL
  • DBeaver
  • Postman
  • Docker
  • Kubernetes
  • AWS
  • GitHub

🎯 Goal

To master production-level backend engineering using Java & Spring Boot and build scalable distributed systems.


⭐ Support

If you found this repository helpful, consider giving it a ⭐ on GitHub.

Releases

No releases published

Packages

 
 
 

Contributors

Languages