Welcome to the journey of learning Spring framework through Test-Driven Development (TDD). This repository is designed for self-paced exploration, allowing me to deepen my understanding of Spring framework concepts through hands-on coding and testing.
This repository is organized into a series of modules representing a dependency in Spring framework. Each module consists of a set of tests that demonstrate the usage of the dependency.
- AOP: How works Spring AOP and how to use it.
- Bean naming: How to name and specifiy a bean between multiple beans.
- Properties: How to bind external properties to a bean.
- ThymeLeaf: Why use ThymeLeaf instead of JSP and how to use it in Spring MVC.
- Session: How to use session in Spring MVC.
- WebClient: How to use WebClient and test with mock server.
- Persistence context: What is persistence context and how does it work in different type of.
- Identifier: Kinds of identifier in JPA and implementation in Hibernate.
- Testcontainers: How to use Testcontainers in Spring Boot with JUnit extension.
- Architecture: How Spring Security works in Servlet.
- Authentication: How Spring Security authenticates a user.
This module also implements several features:
- Authentication with email and password using Security Filter and issue JWT token.