Skip to content

maahma/spring-learning-journey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Learning Journey

This repository contains my notes for learning the Spring Framework, as well as key concepts related to Object-Oriented Design, Design Patterns, and Software Architecture.

It also includes mini-projects that I will develop to learn Spring

I'm following these 2 resources:

  1. Java Spring Framework 6 with Spring Boot 3 with Telusko (Udemy course)

  2. Spring Start Here: Learn what you need and learn it well by Laurentiu Spilca (Book)

NOTE: These mini-projects are self-created for additional practice and are not directly provided by the course or the book

Spring Mini Projects

Spring Framework Introduction

  • Project: Simple Dependency Injection Demo
  • Description: Create a basic console application demonstrating Dependency Injection (DI) using XML configuration, annotations, and Java-based configuration.
  • Dependencies: None (Core Spring only).
  • Instructions:
    • Set up a new Maven project.
    • Create a configuration class with @Configuration annotation.
    • Define beans using @Bean method.
    • Demonstrate DI using a simple MessageService.

Working with Java-Based Configuration

  • Project: Basic Calculator Application
  • Description: Build a console-based calculator using Spring Beans configured with Java configuration (no XML).
  • Dependencies: None (Core Spring only).
  • Instructions:
    • Create a CalculatorService class with methods for addition, subtraction, etc.
    • Use @Configuration and @Component to configure beans.
    • Demonstrate usage with a main application class.

Spring Boot

  • Project: Greeting API
  • Description: Create a Spring Boot application with an HTTP endpoint that returns a greeting message.
  • Dependencies: Spring Boot Starter Web.
  • Instructions:
    • Create a Spring Boot project using Spring Initializr.
    • Add a controller with a @GetMapping for the greeting.
    • Test the API using a browser or Postman.

Spring JDBC

  • Project: Student Management Console App
  • Description: Develop a console application that uses Spring JDBC for CRUD operations on a Student database.
  • Dependencies: Spring JDBC, H2 Database (or MySQL).
  • Instructions:
    • Create a Student class and a StudentDAO interface.
    • Implement the DAO using JdbcTemplate.
    • Test CRUD operations using console input/output.

Spring Boot Web

  • Project: Online Book Store (Basic)
  • Description: Build a Spring Boot web application with a simple homepage listing book titles and an "Add Book" form.
  • Dependencies: Spring Boot Starter Web, Thymeleaf.

Spring AOP

  • Project: User Activity Logger
  • Description: Add a logging aspect to an existing application that tracks user actions using Aspect-Oriented Programming (AOP).
  • Dependencies: Spring Boot Starter AOP.
  • Instructions:
    • Create an Aspect class using @Aspect annotation.
    • Add pointcuts for logging method calls.

Spring Security

  • Project: Secure User Portal
  • Description: Build a web app with user authentication using Spring Security.
  • Dependencies: Spring Boot Starter Security.
  • Instructions:
    • Configure security settings (in-memory users initially).
    • Add role-based access control.

JWT and OAuth2

  • Project: Secure REST API with JWT
  • Description: Secure your REST API with JWT for authentication.
  • Dependencies: Spring Boot Starter Security, JWT.

Docker

  • Project: Containerized Spring Boot Application
  • Description: Dockerize a Spring Boot application.
  • Dependencies: Docker.

Cloud Deployment

  • Project: Deploy API to AWS
  • Description: Deploy a Spring Boot app to AWS Elastic Beanstalk.
  • Dependencies: AWS CLI, AWS Elastic Beanstalk.

Microservices

  • Project: E-commerce Microservices Application
  • Description: Build a system with Product, Order, and Payment microservices.
  • Dependencies: Spring Cloud, Eureka, Feign, Gateway.

Spring AI

  • Project: AI-Powered Chatbot API
  • Description: Build a chatbot API using OpenAI API integrated with Spring Boot.
  • Dependencies: OpenAI API, Spring Boot Starter Web.

About

Learning the Spring Framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages