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

旧版注释

当您使用标准 API 时,bean 上的方法将转换为可执行命令,前提是:spring-doc.cadn.net.cn

@ShellComponent是一个原型注解,它本身是元注释的@Component.因此, 除了过滤机制之外,您还可以使用它来声明 bean(例如,通过使用@ComponentScan).spring-doc.cadn.net.cn

您可以使用value注解的属性。spring-doc.cadn.net.cn

@ShellComponent
static class MyCommands {

	@ShellMethod
	public void mycommand() {
	}
}

的唯一 required 属性@ShellMethodannotation 是其value属性,该属性应具有 一个简短的一句话描述,说明命令的作用。这样,您的用户就可以 无需离开 shell 即可获得有关命令的一致帮助(请参阅帮助)。spring-doc.cadn.net.cn

命令的描述应该简短 — 不超过一两句话。为了更好 consistency,它应该以大写字母开头,以句点结尾。

默认情况下,您无需指定命令的键(即应使用的单词) 在 shell 中调用它)。方法的名称用作 command 键,将 camelCase 名称转换为 虚线、GNU 样式、名称(例如sayHello()成为say-hello).spring-doc.cadn.net.cn

但是,您可以使用key注解的属性:spring-doc.cadn.net.cn

@ShellMethod(value = "Add numbers.", key = "sum")
public int add(int a, int b) {
	return a + b;
}
key属性接受多个值。 如果为单个方法设置多个键,则命令将使用这些不同的别名注册。
Command 键几乎可以包含任何字符,包括空格。不过,在想出名字时, 请记住,一致性通常受到用户的赞赏。也就是说,您应该避免将虚线名称与 带空格的名称和其他不一致。