- Notifications
You must be signed in to change notification settings - Fork2
Ready to use project template that integrates Java 8/11 with Spring Boot 2, JPA, QueryDsl and Postgres
License
Softeq/spring-querydsl-project-template
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
There are Java project template that integrates next technologies:
- Spring Boot 2
- Spring Data JPA
- QueryDSL JPA
- Liquibase
- Postgres
- MapStruct
- Lombok
- JUnit 5 + Integration Tests
To build the project it is require to use next command
gradlew clean build
To build docker image it will require to use
docker build. -t app-template
To run the project it is require to use docker-compose
docker-compose -f ./docker/docker-compose.yaml up
To run only project dependencies it is require to evaluate
docker-compose -f ./docker/docker-compose-deps.yaml up
Application provide next folder structure
src /itest /main /test
Application provides next folders:
- itest - this folder contains integration tests
- main - this folder contains application code
- test - this folder contains JUnit 5 tests
Main application contains folder structure that represent(hexagonal architecture)
com.softeq.app .domain .services .config .adapters .api .jpa
There are list of packages:
- domain - this folder contains domain model of the application and repository interfaces
- services - this folder contains services of the application
- config - current folder contains application configurations
- adapters - current folder contains external services adapters
Project contains several base classes:
- AbstractITest - base integration test that configure context and rollback options for the tests
- AbstractRepositoryImpl - base class for queryDsl based repositories
Gradle build support next options:
-PdisableIntegrationTests
- this option allow to disable integration tests-PdisableJacoco
- this options allow to disable code coverage checks
To build the code successfully it is required > 80% code coverage!This requirement automatically checked during build by JaCoCo plugin.
MIT