🌊
Re:ゼロから始めるSpring Boot #8 カスタムスターター
カスタムスターターとは?
**カスタムスターター(Custom Starter)**とは、
Spring Bootアプリケーションに簡単に機能を追加できる、パッケージ化されたライブラリのこと。
普通のスターター(例:spring-boot-starter-web)と同じように、
- 依存関係(ライブラリ群)
- 自動設定(AutoConfiguration)
をまとめた部品・機能である。
カスタムスターターのユースケース・必要性
なぜカスタムスターターを作るのか?
代表的な場面はこんな感じです。
✅ よくあるユースケース
- 社内共通の機能(ログ設定、認証認可設定など)をまとめる
- 社内標準のライブラリ群をひとまとめにして配布したい
- 同じ設定・Bean登録処理を何度も書くのを避けたい
- SaaS/プラットフォームサービス向けのSDK提供をしたい
✅ なぜ必要か(メリット)
- アプリごとに同じ設定を書く手間がなくなる
- バグ修正や機能追加をスターター側で一括管理できる
- チーム・組織全体で標準化できる
- Spring Bootの「自動構成」のメリットを最大限活かせる
カスタムスターターの作成方法
カスタムスターターは、基本2つのモジュールに分けて作るのが一般的。
- my-starter 依存管理するためのモジュール、依存定義だけする(本体なし)
- my-starter-autoconfigure 実際の自動構成・設定を書く(本体)
カスタムスターターの利用方法
使いたいアプリ側のpom.xmlにdependencyとして登録するだけ。
Hands-on カスタムスターターの作成
mybatis のカスタムスターターを作成してみる。
必要な手順:
- custom-mybatis-spring-boot-autoconfigure モジュールを作成し、自動構成機能を提供する。カスタム定義ファイル
META-INF/spring/XXX.imports
ファイルを用意する。 - custom-mybatis-spring-boot-starter モジュールを作成し、スターターモジュール内で自動構成モジュールを取り込む
- カスタムスターターを利用するプロジェクトのpom.xmlファイルにdependencyを登録
カスタムスターターの手順1を実践
(1).custom-mybatis-spring-boot-autoconfigure モジュールを作成
(2).自動構成クラスを作成
(3).META-INF/spring/XXX.imports
ファイルを用意
カスタムスターターの手順2を実践
(1).custom-mybatis-spring-boot-starter モジュールを作成
(2).モジュールを取り込む(pom.xmlにdependencyを登録するだけ)
(3).カスタムスターターを利用するプロジェクトのpom.xmlファイルにdependencyを登録
以前使ったMyBatisのHands-on用のソースコードを改修して使った。https://zenn.dev/articles/e21f3f245fc860/edit
ソースコード:
Discussion