本节介绍如何将 Spring Shell 设置为在交互模式下工作。
交互模式
版本 2.1.x 引入了内置支持,以区分交互式 和非交互模式。这样可以更轻松地将 shell 用作 简单的命令行工具,无需自定义。
目前,如果在启动时传递任何命令行选项,则进入交互模式 或从命令行运行 shell。这在 shell 应用程序时尤其有效 是使用本机支持编译的。
某些命令在交互模式下运行时可能没有任何有用的含义
或(相反)在非交互模式下。例如,内置命令将
在非交互模式下没有意义,因为它是用来退出交互模式的。exit
批注有一个名为的字段,您可以使用该字段来通知
shell 关于特定命令何时可用。@ShellMethod
interactionMode
壳牌流道
ShellApplicationRunner
是传递 Boot 的主接口
它的默认实现会做出一个选择。可以有
只有一个,但如果出于某种原因需要,可以重新定义它。ApplicationArguments
ShellRunner
ShellApplicationRunner
存在三个实现,分别命名为 和 。默认情况下,Only 处于启用状态。可以使用属性 和 respecively 修改启用状态。ShellRunner
InteractiveShellRunner
NonInteractiveShellRunner
ScriptShellRunner
NonInteractiveShellRunner
spring.shell.interactive.enabled
spring.shell.noninteractive.enabled
spring.shell.script.enabled
例如,启用交互式和脚本运行器使用属性:
spring:
shell:
interactive:
enabled: true
script:
enabled: true
默认情况下启用了所有运行器的版本,默认情况下启用从 only 开始。3.2.x 3.3.x NonInteractiveShellRunner |
从接口开始有一种新的方法:3.3.x
ShellRunner
default boolean run(String[] args) throws Exception {
return false;
}
这将是今后的主要 api,其他现有引导方法已被弃用,将来将被删除。ApplicationArguments |
默认情况下启用了所有运行器的版本,默认情况下启用从 only 开始。3.2.x 3.3.x NonInteractiveShellRunner |
这将是今后的主要 api,其他现有引导方法已被弃用,将来将被删除。ApplicationArguments |