Back to projects

Bases of Java Spring

Repository with all the content that i done during the Java Spring course

2 min read

This repository contains all the code, exercises, and mini-projects I've written while taking the "Master Spring framework, Spring Boot, REST, JPA, Hibernate" course. It's a hands-on log of everything I've learned while diving deep into the Spring ecosystem.

πŸ“š About the Course

The course focuses on building full-fledged web applications and RESTful APIs using technologies like:

  • Spring Framework (Core, MVC, AOP)
  • Spring Boot
  • Spring Security
  • Spring JDBC & Spring Data JPA
  • Thymeleaf
  • Hibernate
  • REST API Development & Consumption
  • Spring Boot Actuator & Admin
  • AWS Deployment

πŸ›  What I Learned

Here’s a summary of the key concepts and topics I’ve worked on:

βœ… Spring Basics

  • What is Spring and why use it
  • Spring vs Java EE
  • Spring’s evolution and modules
  • Core concepts: IoC, DI, AOP
  • Bean creation methods and scopes
  • Autowiring and using Lombok

🌐 Web Development with Spring MVC

  • MVC pattern and architecture
  • Building web apps with Spring MVC + Thymeleaf
  • Form validations and dynamic templates
  • Integrating Spring Security for login and roles

πŸš€ Spring Boot

  • Auto-configuration and starters
  • DevTools, H2 database, profiles
  • Externalized configuration (properties/YAML)
  • Conditional beans and logging

πŸ”’ Security

  • Authentication & authorization
  • CSRF & CORS
  • Role-based access

πŸ—„οΈ Data Layer

  • Spring JDBC for DB operations
  • JPA and Hibernate basics
  • CRUD with Spring Data JPA
  • Derived queries and relationships:
    • OneToOne, OneToMany, ManyToOne, ManyToMany
  • JPQL, pagination, sorting

πŸ”— REST APIs

  • Building REST services with Spring
  • Consuming APIs using:
    • RestTemplate
    • WebClient
    • OpenFeign
  • Spring Data REST & HAL Explorer

πŸ›  Monitoring & Deployment

  • Spring Boot Actuator & Admin
  • Deploying to AWS Elastic Beanstalk

πŸ“ Project Structure

Each part has his own README.md with the most important topics of the section, the things i thought that are the most important. You can check it out following the next structure that represents the path of learning that i've took:

β”œβ”€β”€1_Beans
β”œβ”€β”€2_AutoWiring
β”œβ”€β”€3_Scopes
β”œβ”€β”€4_AOP
β”œβ”€β”€5_Introduction_SpringBoot
β”œβ”€β”€6_Thymeleaf
β”œβ”€β”€7_Lombok
β”œβ”€β”€8_QueryParams&PathVariables
β”œβ”€β”€9_Validators
β”œβ”€β”€10_WebScopes
β”œβ”€β”€11_SpringSecurity
β”œβ”€β”€12_ExceptionHandling
β”œβ”€β”€13_SpringSecurity_Part2
β”œβ”€β”€14_H2Database
β”œβ”€β”€15_SpringData&DataAuditing
β”œβ”€β”€16_CustomValidations
β”œβ”€β”€17_OneToOne
β”œβ”€β”€18_SpringSecurity_Part3
β”œβ”€β”€19_OneToMany&ManyToOne
β”œβ”€β”€20_ManyToMany
β”œβ”€β”€21_SpringData_Sorting&Pagination
β”œβ”€β”€22_SpringData_CustomQueries
β”œβ”€β”€23_REST_Introduction
β”œβ”€β”€24_SpringDataRest&HALExplorer
β”œβ”€β”€25_Logging
β”œβ”€β”€26_PropertiesConfiguration&Profiles
β”œβ”€β”€27_Actuator
└── README.md