This repository is designed to the boilerplate for Java Spring projects.
- People want to start API server based on Spring boot3 with JPA and postgresql quickly.
- People want to force specifications, contracts, and fitness functions.
- Development cycles based on XP.
.
├── .github
│ ├── ISSUE_TEMPLATE
│ │ ├── bug_report.md
│ │ └── task-specification.md
│ └── PULL_REQUEST_TEMPLATE.md
├── .vscode
│ ├── eclipse-java-google-style.xml
│ └── settings.json
├── LICENSE
├── README.md
├── build.gradle
├── settings.gradle
├── config
│ └── checkstyle
│ ├── checkstyle.xml
│ └── supressions.xml
├── contracts
│ └── template.yaml
├── docker-compose.yaml
├── docs
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ └── INSTALLATION.md
└── src
├── main
│ ├── java
│ │ └── love
│ │ └── you
│ │ └── babe
│ │ ├── BabeApplication.java
│ │ ├── controller
│ │ │ └── TemplateController.java
│ │ ├── repository
│ │ │ ├── entity
│ │ │ │ └── TemplateEntity.java
│ │ │ └── TemplateRepository.java
│ │ └── service
│ │ ├── model
│ │ │ └── Template.java
│ │ └── TemplateService.java
│ └── resources
│ ├── application-local.yaml
│ └── application.yaml
└── test
├── java
│ └── love
│ └── you
│ └── babe
│ ├── contracts
│ │ ├── TemplateBase.java
│ │ └── TestcontainersConfiguration.java
│ └── fitness
│ └── LayoutTest.java
└── resources
├── application-test.yaml
└── contracts
└── template
└── contract.yaml
- .github: Issue and PR templates.
- .vscode: Visual Studio Code settings.
- LICENSE: The project's license.
- build.gradle: Project's build script.
- [settings.gradle][(/settings.gradle): Project's build script.
- config/checkstyle: Project's java style settings.
- contracts: API Specifications defined by OAS.
- docker-compose.yaml: Project's runtime script.
- docs: Project's documents.
- src/test/resources/contracts: API's integrational test specifications.
- See Spring Contract
- src/test/java/love/you/babe/contracts: Contract's base class for setup steps.
See details
| Name | Description |
|---|---|
| spring-boot-starter-web | API Server |
| spring-boot-starter-data-jpa | ORM Framework |
| spring-cloud-starter-contract-verifier | Integration Test Framework |
| test container for Java | Isolated container |
| openapi generator for gradle | API IF Generator |
| docker | Container environment |
| docker compose | Container stack management |
| Postgresql | Opensource RDB |
| Gradle | Java build tool |
- Write API Specifications in contracts.
- Run
./gradlew compileJavato generate API IFs atbuild/generated. - Write API Contracts in src/test/java/love/you/babe/contracts.
- Run
./gradlew contractTestto check whether integrational tests work. - Develop APIs by implementing generated API IFs.
- Run
./gradlew checkto check whether all tests are passed. - Run
./gradlew bootBuildImage --imageName=template-javato build server's image. - Run
docker compose upto host the image. - Repeat
step 1-8again.
Copyright (c) 2025 happy
This file can be used by MIT License.
See details at LICENSE