The UserService microservice facilitates user management within an application. It employs reactive programming principles and follows a clean architecture approach to ensure scalability and maintainability
This microservice was developed as a practice project to explore reactive programming with Spring WebFlux.
It is not intended for production use but serves as a learning tool to demonstrate modern Java development practices and principles.
- Spring Framework: Core Framework for building enterprise Java applications.
- Project Lombok: Library for reducing boilerplate code in Java.
- Spring WebFlux: Provides reactive programming support for building asynchronous, non-blocking web applications.
- Spring Security: Ensures robust authentification and authorization mechanisms for securing user data.
- Spring Data R2DBC: Spring Data module for reactive database access using R2DBC
- MapStruct: Used for mapping between domain entities and DTOs.
- JUnit5: Testing framework for unit and integration testing in Java.
- Spring Boot Test: Provides testing support for Spring Boot applications.
- R2DBC (Reactive Relational Database Connectivity): Reactive database driver for relational databases.
- H2 Database: In-memory relational database for development and testing purposes
- JSON: Data interchange format for communication between the client and the server.
This UserService microservice embodies modern Java development practices, leveraging reactive programming, clean architecture, and robust testing methodologies to deliver efficient and scalable user management functionality.
This project is licensed under the MIT License - see the LICENSE file for details.
Here are some of my microservice projects, all built with a similar structure and focused on different business domains. These projects allow me to practice writing reactive code with WebFlux.
Feel free to check them out to explore the differences in entities and how each service is implemented.