执行
本节介绍如何设置Spring Shell以实现交互模式。
交互模式
2.1.x 版本引入了内置支持,用于区分交互式模式和非交互模式。这使得将 shell 作为简单的命令行工具使用变得更容易,无需自定义。
目前,如果在启动或从命令行运行 shell 时传递任何命令行选项,就会进入交互模式。这在 shell 应用程序编译为原生支持时尤其有效。
某些命令在交互模式下运行时可能没有任何有用的含义反之,在非交互模式下运行。例如,内置的退出命令在非交互模式下没有意义,因为它用于退出交互模式。
这@ShellMethod注释有一个字段称为交互模式你可以用它来通知shell 什么时候有特定命令可用。
壳跑者
ShellApplicationRunner是 Boot 的主接口应用参数传递其默认实现会做出选择壳跑者被使用。可以有只有一个ShellApplicationRunner但如果有需要,也可以重新定义。
三壳跑者存在实现,名为互动壳跑者,非交互式壳跑者和脚本壳运行者. 只非交互式壳跑者默认启用。启用状态可以通过属性进行修改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只非交互式壳跑者默认启用。 |
起点3.3.x一个壳跑者接口采用了一种新方法:
default boolean run(String[] args) throws Exception {
return false;
}
这将是未来的主要API,其他现有方法也会被淘汰应用参数已被弃用,未来版本将被移除。 |