Spring Boot + Doma + PostgreSQL のサンプルAPIです。
- Java 17
- Spring Boot 2.7.18
- Gradle (Wrapper)
- PostgreSQL 17 (Docker)
- Doma
.
├─ build.gradle
├─ docker-compose.yml
├─ Dockerfile
├─ gradlew / gradlew.bat
├─ src
│ ├─ main
│ │ ├─ java/com/example
│ │ │ ├─ controller/SampleController.java
│ │ │ ├─ service/SampleService.java
│ │ │ ├─ service-impl/impl/SampleServiceImpl.java
│ │ │ ├─ dao/SampleDao.java
│ │ │ └─ dao/entity/Sample.java
│ │ └─ resources
│ │ ├─ application.properties
│ │ └─ META-INF/com/example/dao/SampleDao/selectAll.sql
│ └─ test
│ └─ java/com/example/demo/DemoApplicationTests.java
└─ gradle/wrapper
- Git
- Docker Desktop(Docker起動方式を使う場合)
- Java 17(ローカル起動方式を使う場合)
Java バージョン確認:
java -versionjava -version が 17 以外の場合は、JAVA_HOME を Java 17 に設定してください。
- Windows (PowerShell)
$env:JAVA_HOME = "C:\\Program Files\\Eclipse Adoptium\\jdk-17*"
$env:Path = "$env:JAVA_HOME\\bin;$env:Path"
java -version- macOS (zsh)
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH="$JAVA_HOME/bin:$PATH"
java -version- イメージをビルド
docker compose build- コンテナ起動
docker compose up -d- ログ確認
docker compose logs -f api- 停止
docker compose down- DBのみ起動
docker compose up -d db- APIをローカル起動
- Windows (PowerShell)
.\gradlew.bat bootRun- macOS
./gradlew bootRun- 停止
- API: 実行中ターミナルで
Ctrl + C - DB:
docker compose stop db- API が起動していることを確認(
docker compose psでapiがUp、またはbootRun実行中)。 - 以下の URL にアクセス。
- ブラウザ:
http://localhost:8080/api/sample/ - curl:
curl http://localhost:8080/api/sample/- 正常時は
Sampleの一覧が JSON 配列で返ります。
- Windows (PowerShell)
.\gradlew.bat test- macOS
./gradlew test- APIコンテナは
8080ポート、DBコンテナは5433(ホスト)→5432(コンテナ)を使用します。 - 接続先DBは
docker-compose.ymlのspring.datasource.urlでdbサービスを参照しています。