Skip to content

whitecat1216/Springboot-postgres-Doma

Repository files navigation

demo

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

前提条件(Windows / macOS)

  • Git
  • Docker Desktop(Docker起動方式を使う場合)
  • Java 17(ローカル起動方式を使う場合)

Java バージョン確認:

java -version

java -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

起動手順

1) Docker Composeで起動(推奨)

  1. イメージをビルド
docker compose build
  1. コンテナ起動
docker compose up -d
  1. ログ確認
docker compose logs -f api
  1. 停止
docker compose down

2) ローカルでAPI起動 + DockerでDB起動

  1. DBのみ起動
docker compose up -d db
  1. APIをローカル起動
  • Windows (PowerShell)
.\gradlew.bat bootRun
  • macOS
./gradlew bootRun
  1. 停止
  • API: 実行中ターミナルで Ctrl + C
  • DB:
docker compose stop db

アクセス手順

  1. API が起動していることを確認(docker compose psapiUp、または bootRun 実行中)。
  2. 以下の URL にアクセス。
  • ブラウザ: http://localhost:8080/api/sample/
  • curl:
curl http://localhost:8080/api/sample/
  1. 正常時は Sample の一覧が JSON 配列で返ります。

テスト

  • Windows (PowerShell)
.\gradlew.bat test
  • macOS
./gradlew test

補足

  • APIコンテナは 8080 ポート、DBコンテナは 5433(ホスト)→ 5432(コンテナ)を使用します。
  • 接続先DBは docker-compose.ymlspring.datasource.urldb サービスを参照しています。

About

SpringbootとPostgresとDomaによるセットアップ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors