执行

本节介绍如何设置Spring Shell以实现交互模式。spring-doc.cadn.net.cn

交互模式

2.1.x 版本引入了内置支持,用于区分交互式模式和非交互模式。这使得将 shell 作为简单的命令行工具使用变得更容易,无需自定义。spring-doc.cadn.net.cn

目前,如果在启动或从命令行运行 shell 时传递任何命令行选项,就会进入交互模式。这在 shell 应用程序编译为原生支持时尤其有效。spring-doc.cadn.net.cn

某些命令在交互模式下运行时可能没有任何有用的含义反之,在非交互模式下运行。例如,内置的退出命令在非交互模式下没有意义,因为它用于退出交互模式。spring-doc.cadn.net.cn

@ShellMethod注释有一个字段称为交互模式你可以用它来通知shell 什么时候有特定命令可用。spring-doc.cadn.net.cn

壳跑者

ShellApplicationRunner是 Boot 的主接口应用参数传递其默认实现会做出选择壳跑者被使用。可以有只有一个ShellApplicationRunner但如果有需要,也可以重新定义。spring-doc.cadn.net.cn

壳跑者存在实现,名为互动壳跑者,非交互式壳跑者脚本壳运行者. 只非交互式壳跑者默认启用。启用状态可以通过属性进行修改spring.shell.interactive.enabled,spring.shell.noninteractive.enabledspring.shell.script.enabled具体来说。spring-doc.cadn.net.cn

例如,启用交互式和脚本运行器使用以下属性:spring-doc.cadn.net.cn

spring:
  shell:
    interactive:
      enabled: true
    script:
      enabled: true
版本至以下3.2.x默认启用所有运行器,从以下开始3.3.x非交互式壳跑者默认启用。

起点3.3.x一个壳跑者接口采用了一种新方法:spring-doc.cadn.net.cn

default boolean run(String[] args) throws Exception {
  return false;
}
这将是未来的主要API,其他现有方法也会被淘汰应用参数已被弃用,未来版本将被移除。