https://github.com/miroslavkolosnjaji/userservice
UserService is a Java-based microservice for user management, built with Spring WebFlux using reactive programming principles. It focuses on scalability and maintainability through clean architecture. This project is intended as a learning tool, not for production use, and demonstrates modern Java development practices with Spring WebFlux.
https://github.com/miroslavkolosnjaji/userservice
h2-database java json junit5 mapstruct mapstruct-plugin project-lombok r2dbc reactive-programming spring-boot spring-framework-6 spring-r2dbc spring-webflux
Last synced: 3 months ago
JSON representation
UserService is a Java-based microservice for user management, built with Spring WebFlux using reactive programming principles. It focuses on scalability and maintainability through clean architecture. This project is intended as a learning tool, not for production use, and demonstrates modern Java development practices with Spring WebFlux.
- Host: GitHub
- URL: https://github.com/miroslavkolosnjaji/userservice
- Owner: MiroslavKolosnjaji
- License: mit
- Created: 2024-05-02T21:33:12.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-01T12:20:27.000Z (12 months ago)
- Last Synced: 2025-09-06T04:45:08.216Z (3 months ago)
- Topics: h2-database, java, json, junit5, mapstruct, mapstruct-plugin, project-lombok, r2dbc, reactive-programming, spring-boot, spring-framework-6, spring-r2dbc, spring-webflux
- Language: Java
- Homepage:
- Size: 81.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README


[](https://opensource.org/licenses/MIT)

# UserService
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
## Limitations and Use Case
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.
## Technologies Used:
- __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.
### Conclusion:
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.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
# Microservice Projects Overview
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**.
[](https://github.com/MiroslavKolosnjaji/RoleService)
[](https://github.com/MiroslavKolosnjaji/GymService)
[](https://github.com/MiroslavKolosnjaji/MemberService)
[](https://github.com/MiroslavKolosnjaji/MembershipService)
[](https://github.com/MiroslavKolosnjaji/CityService)
Feel free to check them out to explore the differences in entities and how each service is implemented.