|
| 1 | +### 日本語用README (`README.ja.md`) |
| 2 | + |
| 3 | +# Spring Batch 5 Starter |
| 4 | + |
| 5 | +**コピペで即完成! Spring Batch 5** 🚀 |
| 6 | + |
| 7 | +[](https://github.com/KTC-YoheiMiyashita/SpringBoot3BatchStarter/stargazers) |
| 8 | +[](https://github.com/kinto-technologies/SpringBoot3BatchStarter/actions/workflows/build.yml) |
| 9 | + |
| 10 | +[](https://opensource.org/licenses/Apache-2.0) |
| 11 | + |
| 12 | +## 🔍 Overview |
| 13 | + |
| 14 | +このリポジトリは、**Spring Boot 3** と **Spring Batch 5** のために特化した**Spring Batchスターターキット**です。 |
| 15 | +最新機能を活用し、Spring Boot 3との完全な互換性を持つことで、バッチジョブ開発を効率化します。 |
| 16 | +**Spring Boot 2** からの移行や新規プロジェクトで、**Spring Batchの強化された機能**を簡単に活用できます。 |
| 17 | + |
| 18 | +### 📝 Key Highlights |
| 19 | +- **スケルトンバッチフレームワーク**: 最小限の設定でカスタムバッチジョブを簡単に開発できます。 |
| 20 | +- **DB to CSV バッチ**: MySQLデータをCSVファイルにエクスポート。動的なWHERE句や柔軟な出力設定に対応しています。 |
| 21 | +- **CSV to DB バッチ**: CSVデータをMySQLに効率的にインポートします。バルク処理とエラーハンドリング機能を備えています。 |
| 22 | + |
| 23 | +### 再利用性 |
| 24 | +このキットは非常に適応性があります。データベース接続設定を更新し、CSVのカラム定義を業務要件に合わせて変更するだけで、すぐにプロジェクトに利用できます。 |
| 25 | + |
| 26 | +--- |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | +## 💡 特徴 |
| 31 | + |
| 32 | +### Batch Development Made Simple |
| 33 | +- **Spring Batch フレームワーク**: ジョブとステップの管理を効率化。 |
| 34 | +- **JOOQ ORM**: SQLライクなクエリ記述とエンティティ生成機能。 |
| 35 | +- **OpenCSV 統合**: CSVファイルの簡単な取り扱い。 |
| 36 | +- **マルチデータベースサポート**: |
| 37 | + - H2 : バッチメタデータ管理にH2 |
| 38 | + - MySQL : 業務データ処理にMySQL |
| 39 | + |
| 40 | +### 柔軟性と最適化 |
| 41 | +- **動的な設定**: 環境ごとの設定(ローカル/サーバー)をプロファイルで管理。 |
| 42 | +- **カスタマイズ可能なバッチ**: 実行時の引数で複数のジョブを動的に実行。 |
| 43 | +- **Google Java Format**: Spotlessを使用した自動コード整形。 |
| 44 | + |
| 45 | +### 将来に向けた設計 |
| 46 | +- **スケルトンバッチフレームワーク**: 事前設定されたDocker環境。 |
| 47 | +- **事前設定されたDocker環境**: ローカルのMySQLデータベースを迅速にセットアップ。 |
| 48 | +- **CI/CD**: Github Actions で「継続的インテグレーションと継続的デリバリーを実現。 |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +## 🗂️ プロジェクト概要 |
| 53 | +```text |
| 54 | +. |
| 55 | +├── gradlew |
| 56 | +├── settings.gradle |
| 57 | +├── compose.yaml |
| 58 | +├── init-scripts |
| 59 | +│ ├── 1-create-table.sql |
| 60 | +│ └── 2-insert-data.sql |
| 61 | +├── dbAndCsvBatch |
| 62 | +│ ├── README.md |
| 63 | +│ ├── build.gradle |
| 64 | +│ └── src |
| 65 | +│ ├── main |
| 66 | +│ └── test |
| 67 | +└── skeletonBatch |
| 68 | + ├── README.md |
| 69 | + ├── build.gradle |
| 70 | + └── src |
| 71 | + ├── main |
| 72 | + └── test |
| 73 | +``` |
| 74 | + |
| 75 | +## 🛠️ はじめに |
| 76 | + |
| 77 | +### 1. リポジトリをクローンする |
| 78 | +```bash |
| 79 | +git clone https://github.com/kinto-technologies/SpringBoot3BatchStarter.git |
| 80 | +``` |
| 81 | + |
| 82 | +### 2. スケルトンバッチをビルドする |
| 83 | +```bash |
| 84 | +cd skeletonBatch |
| 85 | +../gradlew |
| 86 | +``` |
| 87 | + |
| 88 | +### 3. スケルトンバッチを実行する |
| 89 | +```bash |
| 90 | +java -jar build/libs/skeletonBatch-*.jar |
| 91 | +``` |
| 92 | + |
| 93 | +### 4. MySQLデータベースを設定する(Docker) |
| 94 | +```bash |
| 95 | +docker compose up -d |
| 96 | +``` |
| 97 | + |
| 98 | +### 5. DB と CSV バッチジョブをビルドする |
| 99 | +```bash |
| 100 | +cd ../dbAndCsvBatch |
| 101 | +../gradlew |
| 102 | +``` |
| 103 | + |
| 104 | +### 6. DB to CSV バッチを実行する |
| 105 | +```bash |
| 106 | +java -jar build/libs/dbAndCsvBatch-*.jar --spring.batch.job.name=DB_TO_CSV --spring.profiles.active=local |
| 107 | +``` |
| 108 | + |
| 109 | +### 7. CSV to DB バッチを実行する |
| 110 | +```bash |
| 111 | +java -jar build/libs/dbAndCsvBatch-*.jar --spring.batch.job.name=CSV_TO_DB --spring.profiles.active=local |
| 112 | +``` |
| 113 | + |
| 114 | +> **注意**: ステップ4を実行する前にDockerがインストールされていて、実行中であることを確認してください。 |
| 115 | +
|
| 116 | +#### 🎉 このSpring Batchスターターキットを使えば、フレームワークが重い作業を引き受ける間に、あなたはビジネスロジックに集中できます。 |
| 117 | +**楽しいコーディングを!** 🚀 |
| 118 | + |
| 119 | +## 📄 ライセンス |
| 120 | + |
| 121 | +このプロジェクトは、**[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)** の下でライセンスされています。 |
| 122 | +Copyright © 2024 KINTO Technologies Corporation |
0 commit comments