Spring Bootで簡単なコマンドラインアプリケーションを作成したときのメモを残しておきます。Springアプリケーションの起動時に1度だけ処理を実行したいとき(バッチ処理)や、コマンドライン引数を指定して処理を実行したいときに使えます。
コマンドラインアプリケーションを作成する方法
CommandLineRunner
インタフェースを実装したクラスを作成し、run
メソッドをオーバーライドし、その中に処理を書いてやればOKです。あとは、クラスに@Component
を付与し、コンポーネントスキャンの対象にしてやれば、Springアプリケーション起動時にrun
メソッドが実行されます。
試しに、Springアプリケーションを起動してみます。
run
メソッドが実行されていますね。
コマンドライン引数を指定する場合
コマンドライン引数を指定して起動することもできます。
試しに、コマンドライン引数を指定してSpringアプリケーションを起動してみます。
引数で指定した「hoge foo bar」がきちんと処理されていますね。
CommandLineRunner
インタフェースを実装したクラスを複数作成する場合
クラスに@Order
を付与することで、実行順序を指定できます。A処理→B処理→C処理のように実行順序を制御したいときに使えそうです。
試しに、Springアプリケーションを起動してみます。
指定した順序通りに処理が実行されていますね。
まとめ
Spring Bootでコマンドラインアプリケーションを作成する手順をまとめておきます。