该版本仍在开发中,尚未被视为稳定。最新稳定版本请使用Spring Shell 3.4.1spring-doc.cadn.net.cn

执行

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

交互模式

2.1.x 版本引入了内置支持以区分交互式 以及非交互模式。这使得使用壳体作为 简单的命令行工具,无需自定义。spring-doc.cadn.net.cn

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

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

@Command注释有一个字段称为交互模式你可以用来告知 关于某个特定命令何时可用。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,其他现有方法也会被淘汰应用参数已被弃用,未来版本将被移除。