Skip to content

Commit c386d27

Browse files
fix readme
1 parent 8e1f835 commit c386d27

File tree

2 files changed

+250
-230
lines changed

2 files changed

+250
-230
lines changed

README.ja.md

Lines changed: 127 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -8,154 +8,157 @@
88
![Java 21](https://img.shields.io/badge/Java-21%2B-blue)
99
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-CC2233.svg)](https://opensource.org/licenses/Apache-2.0)
1010

11-
## 🌐 言語サポート
11+
Spring Boot 3 と Spring Batch 5 を使用した、すぐに使えるバッチ処理フレームワークです。DB-CSVデータ連携やスケルトンバッチなど、実用的なサンプルを提供します。
1212

1313
🇬🇧 英語版のREADMEは[こちら](README.md)
1414

15-
## 📋 必要要件
16-
- JDK 21(Gradleのツールチェーンで自動的にダウンロード)
17-
- Docker Desktop
18-
- Gradle 8.5以上(gradlewを使用する場合は不要)
19-
20-
> 💡 このプロジェクトはJDK 21を使用しますが、Gradleのツールチェーン機能により、ローカル環境にJDK 21がインストールされていなくても自動的に必要なJDKがダウンロードされます。
21-
22-
## 🔍 概要
23-
24-
このリポジトリは**Spring Boot 3****Spring Batch 5**に特化した、エンタープライズ向けバッチ処理アプリケーションの基盤となるスターターキットです。業界のベストプラクティスを取り入れ、最新のSpringフレームワーク機能を活用してバッチ開発プロセスを加速します。
25-
26-
### ⭐ 主要機能
27-
28-
#### 🏗️ 基本コンポーネント
29-
- **本番対応バッチフレームワーク**: 高速開発のための事前設定済み基本構造
30-
- **データベース操作**:
31-
- 動的クエリ対応のDB-to-CSVエクスポート
32-
- バルク処理によるハイパフォーマンスなCSV-to-DBインポート
33-
- **エンタープライズグレードのアーキテクチャ**: スケーラビリティとメンテナンス性を考慮した設計
34-
35-
### 🛠️ 技術的な特徴
36-
- **Springフレームワークの活用**
37-
- 堅牢なSpring Batchのジョブとステップ管理
38-
- JOOQ ORMによる型安全なSQLクエリ
39-
- OpenCSVによるシームレスなCSV処理
40-
- **デュアルデータベース設定**
41-
- バッチメタデータ用のH2インメモリデータベース
42-
- ビジネスデータ処理用のMySQL
43-
44-
### 💻 開発環境の特徴
45-
- **動的設定**
46-
- 環境別プロファイル(ローカル/サーバー)
47-
- 実行時引数による実行するジョブの選択
48-
- 実行時引数による柔軟なクエリカスタマイズ
49-
- **コード品質ツール**
50-
- Google Java Format(Spotless)による自動フォーマット
51-
- Spotbugsによる静的解析
52-
- Jacocoによるテストカバレッジレポート
53-
- パイプライン
54-
55-
### 🚢 DevOps対応
56-
- コンテナ化: 使用準備完了のMySQL設定を含むDocker対応
57-
- CI/CD統合: GitHub Actionsワークフロー搭載
58-
- シンプルなビルドプロセス: 本番対応JARを生成するシングルコマンドビルド
15+
## 📋 前提条件
16+
* JDK 21(Gradleのツールチェーンで自動ダウンロード)
17+
* Docker Desktop
18+
* Gradle 8.5+(gradlewを使用する場合は不要)
5919

60-
## 📌 バージョン情報
61-
- Spring Boot: 3.4.1
62-
- Spring Dependency Management: 1.1.7
63-
- Spotless (Google Java Format): 6.22.0
64-
- jOOQ: 9.0
65-
- OpenCSV: 5.9
66-
- SpotBugs: 6.0.27
67-
68-
### 使用プラグイン
69-
- spring-boot
70-
- spring-dependency-management
71-
- spotless
72-
- jooq
73-
- jacoco
74-
- spotbugs
75-
- project-report
76-
77-
---
78-
79-
## 📁 プロジェクト構造
80-
```text
81-
.
82-
├── gradlew
83-
├── settings.gradle
84-
├── compose.yaml
85-
├── init-scripts
86-
│ ├── 1-create-table.sql
87-
│ └── 2-insert-data.sql
88-
├── dbAndCsvBatch
89-
│ ├── README.md
90-
│ ├── build.gradle
91-
│ └── src
92-
│ ├── main
93-
│ └── test
94-
└── skeletonBatch
95-
├── README.md
96-
├── build.gradle
97-
└── src
98-
├── main
99-
└── test
100-
```
10120

102-
## 🚀 クイックスタートガイド
21+
> 💡 JDK 21が必要ですが、Gradleのツールチェーン機能により、ローカルにインストールされていなくても自動的にダウンロードされます。
10322
104-
### 1. リポジトリのクローン
23+
## 1. スケルトンバッチを試す
10524
```bash
25+
# リポジトリのクローン
10626
git clone https://github.com/kinto-technologies/SpringBoot3BatchStarter.git
107-
```
10827

109-
### 2. スケルトンバッチのビルド
110-
```bash
28+
# スケルトンバッチのビルドと実行
11129
cd skeletonBatch
11230
../gradlew
113-
```
114-
115-
### 3. スケルトンバッチの実行
116-
```bash
11731
java -jar build/libs/skeletonBatch-*.jar
11832
```
11933

120-
### 4. データベースの初期化
34+
## 2. DBとCSVのバッチを試す
35+
12136
```bash
37+
# MySQLコンテナの起動
38+
cd ..
12239
docker compose up -d
123-
```
12440

125-
### 5. DB と CSV バッチジョブをビルドする
126-
```bash
127-
cd ../dbAndCsvBatch
41+
# ビルドと実行
42+
cd dbAndCsvBatch
12843
../gradlew
129-
```
13044

131-
### 6. DB to CSV バッチを実行する
132-
```bash
45+
# DB→CSV出力の実行
13346
java -jar build/libs/dbAndCsvBatch-*.jar --spring.batch.job.name=DB_TO_CSV --spring.profiles.active=local
134-
```
13547

136-
### 7. CSV to DB バッチを実行する
137-
```bash
48+
# CSV→DB登録の実行
13849
java -jar build/libs/dbAndCsvBatch-*.jar --spring.batch.job.name=CSV_TO_DB --spring.profiles.active=local
13950
```
14051

141-
> **注意**: データベースセットアップにはDockerのインストールが必要です。
142-
143-
## 🔧 トラブルシューティング
144-
### よくある問題
145-
146-
#### 1. Entityクラスが見つからない
147-
- 原因: jOOQによる自動生成が未実行
148-
- 解決: ./gradlew buildを実行
149-
150-
#### 2. データベース接続エラー
151-
- 原因: MySQLコンテナが未起動
152-
- 解決: docker compose up -dを実行
153-
154-
## ♻️ カスタマイズ性
155-
このスターターキットは簡単なカスタマイズを想定して設計されています。データベース設定とCSVマッピングを特定の要件に合わせて変更するだけで、すぐにビジネスデータの処理を開始できます。
52+
---
15653

157-
## 📜 ライセンス
54+
## 📁 プロジェクト構造
55+
```text
56+
.
57+
├── gradlew # Gradleラッパー
58+
├── settings.gradle
59+
├── compose.yaml # Docker Compose設定
60+
├── init-scripts # DB初期化スクリプト
61+
│ ├── 1-create-table.sql
62+
│ └── 2-insert-data.sql
63+
├── dbAndCsvBatch # DB-CSVバッチ
64+
│ ├── README.md
65+
│ ├── build.gradle
66+
│ └── src/
67+
└── skeletonBatch # スケルトンバッチ
68+
├── README.md
69+
├── build.gradle
70+
└── src/
71+
```
15872

159-
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)でライセンスされています
73+
## 💡 主な機能
74+
75+
### 🏗️ 基盤機能
76+
- **本番稼働可能なバッチフレームワーク**
77+
- すぐに開発を始められる構成
78+
- 必要最小限の設定で動作
79+
- H2インメモリDBによる簡単セットアップ
80+
81+
### 🔄 データ操作
82+
- **DB→CSV出力**
83+
- 動的クエリのサポート
84+
- 柔軟なデータ抽出設定
85+
- **CSV→DB登録**
86+
- バルク操作による一括登録
87+
- 高性能なデータローディング
88+
89+
### 🛠️ 技術スタック
90+
- **Spring連携**
91+
- Spring Batchによるジョブ/ステップ管理
92+
- jOOQによる型安全なSQL実行
93+
- OpenCSVによるCSV処理
94+
- **デュアルデータベース設定**
95+
- バッチ管理用H2インメモリDB
96+
- 業務データ用MySQL
97+
98+
### 💻 開発者向け機能
99+
- **動的設定**
100+
- 環境別プロファイル(local/server)
101+
- 実行時設定可能なジョブ実行
102+
- クエリのカスタマイズ対応
103+
104+
### 🔍 品質管理
105+
- Google Java Format(Spotless)
106+
- 静的解析(SpotBugs)
107+
- テストカバレッジ(Jacoco)
108+
- GitHub Actions CIパイプライン
160109

161-
Copyright © 2024 KINTO Technologies Corporation
110+
## 📌 バージョン情報
111+
* Spring Boot: 3.4.1
112+
* Spring Dependency Management: 1.1.7
113+
* Spotless (Google Java Format): 6.22.0
114+
* jOOQ: 9.0
115+
* OpenCSV: 5.9
116+
* SpotBugs: 6.0.27
117+
118+
## ❓ よくある問題と解決方法
119+
120+
### Entityクラスが見つからない
121+
- **原因**:jOOQの自動生成が未実行
122+
- **解決**`../gradlew generateJooq` を実行
123+
- **または**`build/generated-src/jooq``src/main/java` にコピー
124+
125+
### データベース接続エラー
126+
- **原因**:MySQLコンテナが未起動
127+
- **解決**`docker compose up -d` を実行
128+
- **確認**`docker ps` でコンテナの状態を確認
129+
130+
### 複数ジョブ存在エラー
131+
- **症状**:「Job name must be specified」エラー
132+
- **原因**:実行するジョブ名の指定が必要
133+
- **解決**`--spring.batch.job.name=DB_TO_CSV` を指定
134+
135+
## 🔄 継続的インテグレーション
136+
137+
このプロジェクトでは以下のCI/CDツールを活用しています:
138+
139+
### GitHub Actions
140+
- 自動ビルドとテスト
141+
- コードフォーマットチェック(Google Java Format)
142+
- 静的解析(SpotBugs)
143+
- テストカバレッジ計測(Jacoco)
144+
145+
### Codecov
146+
- テストカバレッジの可視化
147+
- プルリクエスト時のカバレッジレポート自動生成
148+
- カバレッジ変更の追跡
149+
150+
### MySQL CI環境
151+
- GitHub Actionsでの自動セットアップ
152+
- テスト用データベースの構築
153+
- jOOQによるエンティティ自動生成の検証
154+
155+
### ワークフロー
156+
1. プッシュまたはプルリクエスト時に自動実行
157+
2. MySQLコンテナのセットアップ
158+
3. JDK 21環境の構築
159+
4. Gradleによるビルドとテスト
160+
5. カバレッジレポートの生成とアップロード
161+
162+
## 📄 ライセンス
163+
Apache License 2.0
164+
Copyright © 2024 KINTO Technologies Corporation

0 commit comments

Comments
 (0)