The CityService microservice is designed to manage city data, leveraging various modern Java technologies such as Spring Framework, Project Lombok, and WebFlux for reactive programming. It provides a RESTful API for CRUD Operations on city entities.
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 Data R2DBC: Spring Data module for reactive database access using R2DBC
- MapStruct: Used for mapping between domain entities and DTOs.
- H2 Database: In-memory relational database for development and testing purposes
- 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.
- JSON: Data interchange format for communication between the client and the server.
This project showcases modern Java development practices, emphasizing reactive programming and clean architecture for building scalable and maintainable microservices.
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.