実行

このセクションでは、インタラクティブモードで動作するように Spring Shell をセットアップする方法について説明します。

インタラクションモード

バージョン 2.1.x では、対話モードと非対話モードを区別する組み込みサポートが導入されました。これにより、カスタマイズを必要とせずにシェルを単純なコマンドラインツールとして簡単に使用できます。

現在、コマンドラインからシェルを起動または実行するときにコマンドラインオプションが渡されると、対話モードに入ります。これは、シェルアプリケーションがネイティブサポートでコンパイルされている場合に特にうまく機能します。

一部のコマンドは、対話モードで実行したり、(逆に) 非対話モードで実行したりすると、有用な意味を持たない場合があります。例: 組み込みの exit コマンドは、対話モードを終了するために使用されるため、非対話モードでは意味がありません。

シェルランナー

ShellRunner はシェルを実行するためのメインインターフェースです。アプリケーションコンテキストごとに ShellRunner は 1 つだけ使用できます。

ShellRunner 実装には SystemShellRunnerJLineShellRunnerNonInteractiveShellRunner という名前で 3 つ存在します。デフォルトでは、対話型の SystemShellRunner が使用されます。

非対話モードを有効にするには、spring.shell.interactive.enabled プロパティを false に設定します。これにより、ShellRunner 実装が NonInteractiveShellRunner に切り替わります。

Spring Boot アプリケーションでは、Spring Shell が対話型シェルランナーを実行する springShellApplicationRunner という名前の ApplicationRunner Bean を登録します。別の ShellRunner 実装を使用する場合は、デフォルトの ApplicationRunner をオーバーライドする必要があります。

デバッグモード

Spring Shell は、spring.shell.debug.enabled プロパティを true に設定することで有効にできるデバッグモードを提供します。有効にすると、エラーのスタックトレースを出力することで、コマンド実行に関する追加のデバッグ情報が提供され、トラブルシューティングや開発に役立ちます。