在代码清单 19 中,通过@ShellCommandGroup 为命令所在类添加了自定义的分组名称 Special。其中的方法 command2 则通过@ShellMethod 的 group 属性指定了不同的分组名称"Basic Group"。
清单 19. 组织命令
@ShellComponent
@ShellCommandGroup("Special")
public class CommandsGroupApp {
@ShellMethod("Command1")
public void command1() {}
@ShellMethod(value = "Command2", group = "Basic Group")
public void command2() {}
}
图 1 显示了示例应用的 help 命令的输出结果,从中可以看到命令的分组情况。
图 1. 所有的命令列表

commands.png
内置命令
Spring Shell 提供了很多内置的命令,如下所示。
运行 help 命令可以列出来应用中的所有命令和对应的描述信息。
运行 clear 命令可以进行清屏操作。
运行 exit 命令可以退出命令行应用。
运行 script 命令可以执行一个文件中包含的所有命令。
如果不需要某个内置命令,可以通过把上下文环境中的属性 spring.shell.command.<command>.enabled 的值设为 false 来禁用。如果希望禁用全部的内置命令,可以把 spring-shell-standard-commands 从 Maven 依赖中排除,如代码清单 20 所示。
清单 20. 排除内置命令对应的 Maven 依赖
<dependency> <groupId>org.springframework.shell</groupId> <artifactId>spring-shell-starter</artifactId> <version>2.0.0.M2</version> <exclusions> <exclusion> <groupId>org.springframework.shell</groupId> <artifactId>spring-shell-standard-commands</artifactId> </exclusion> </exclusion> </dependency>
小结
命令行应用以其简单易用,占有资源少,速度快的特点,仍然在 Java 应用开发中占据一席之地。Spring Shell 为开发命令行应用提供了坚实的基础,可以极大的提高开发效率。本文对 Spring Shell 进行了详细的介绍,从基础的入门,到参数的传递和校验,再到结果处理、自定义提示符、动态命令可用性、输入参数转换、命令组织和内置命令等。在阅读本文之后,读者可以了解如何使用 Spring Shell 开发命令行应用。
以上所述是小编给大家介绍的通过Spring Shell 开发 Java 命令行应用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对易采站长站网站的支持!










