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