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