Minimal Spring Boot based reactive CRUD example, which manages user entity (including Swagger UI).
java 21, Spring Boot, Webflux, Postgres, Flyway, Springfox
The following items should be installed in your system:
- java 21 or newer.
- git command line tool (https://help.github.com/articles/set-up-git)
- Your preferred IDE (IDEA preferably)
Application uses a Postgres as a persistent storage. Options to get it up:
- Use remote existing postgres. It is needed to specify the path in configs.
- Start local postgres in docker
docker compose -f compose.yaml up -d
This application is a Spring Boot application built using Maven. You can build a jar file and run it from the command line:
git clone https://github.com/KnowHowSpringBoot/sample-reactive-crud-secured.git
cd sample-reactive-crud-secured
./mvnw package
java -jar target/*.jar
You might also want to use Maven's spring-boot:run
goal - applications run in an exploded form, as they do in your IDE:
./mvnw spring-boot:run -Dspring-boot.run.profiles=local -P dev
Now you can access to the Swagger UI here: http://localhost:8080/swagger-ui.html
- On the command line
git clone https://github.com/KnowHowSpringBoot/sample-reactive-crud-secured.git
- Inside IDE
In the main menu, choose File -> Open
and select the Application pom.xml. Click on the Open
button.
Activate "local" profile in the Run settings or set it via environment
variables. instruction
Wait to indexing completion and push the green "play" button.
- Navigate to Swagger UI
Visit http://localhost:8080/swagger-ui.html in your browser.
The code follows Google Code Conventions. Code quality is measured by:
- Sonarqube
- PMD
- CheckStyle
- SpotBugs
This project has standard JUnit tests. To run them execute this command:
./mvnw verify -P use-testcontainers
Project uses a three-segment CalVer scheme, with a short year in the major version slot, short month in the minor version slot, and micro/patch version in the third and final slot.
YY.MM.MICRO
- YY - short year - 6, 16, 106
- MM - short month - 1, 2 ... 11, 12
- MICRO - "patch" segment