执行
本节介绍如何设置 Spring Shell 以在交互模式下工作。
交互模式
版本 2.1.x 引入了内置支持,以区分交互式 和非交互模式。这使得将 shell 用作 简单的命令行工具,无需自定义。
目前,如果在启动时传递了任何命令行选项,则会进入交互模式 或从命令行运行 shell。这在 shell 应用程序 是使用 Native Support 编译的。
某些命令在交互模式下运行时可能没有任何有用的含义
或(相反)在非交互模式下。例如,内置的exit
命令将
在非交互模式下没有意义,因为它用于退出交互模式。
这@ShellMethod
annotation 有一个名为interactionMode
您可以使用它来通知
shell 来了解特定命令何时可用。
Shell Runners
ShellApplicationRunner
是一个主界面,其中 Boot 的ApplicationArguments
传递
,它的默认实现会选择一个ShellRunner
被使用。可以有
只有一个ShellApplicationRunner
但是如果出于某种原因需要,可以重新定义它。
三ShellRunner
implementation 存在,名为InteractiveShellRunner
,NonInteractiveShellRunner
和ScriptShellRunner
.只NonInteractiveShellRunner
默认启用。可以使用属性修改启用状态spring.shell.interactive.enabled
,spring.shell.noninteractive.enabled
和spring.shell.script.enabled
具体地。
例如,启用交互式和脚本运行程序会使用属性:
spring:
shell:
interactive:
enabled: true
script:
enabled: true
版本高达3.2.x 默认启用所有运行器,从3.3.x 只NonInteractiveShellRunner 默认启用。 |
起价3.3.x
一个ShellRunner
interface 有一个新方法:
default boolean run(String[] args) throws Exception {
return false;
}
这将是以后的主要 api 和其他现有方法,采用 boot 的ApplicationArguments 已弃用,并将在将来删除。 |