当您使用标准 API 时,Bean 上的方法将转换为可执行命令,前提是:

  • bean 类带有注释。(这用于限制 Bean 的集合 被考虑。@ShellComponent

  • 该方法带有注释。@ShellMethod

这是一个构造型注释,它本身是用 元注释的。因此, 除了过滤机制之外,还可以使用它来声明 Bean(例如,通过使用 )。@ShellComponent@Component@ComponentScan

您可以使用注释的属性来定制所创建 Bean 的名称。value

这是一个构造型注释,它本身是用 元注释的。因此, 除了过滤机制之外,还可以使用它来声明 Bean(例如,通过使用 )。@ShellComponent@Component@ComponentScan

您可以使用注释的属性来定制所创建 Bean 的名称。value

@ShellComponent
static class MyCommands {

	@ShellMethod
	public void mycommand() {
	}
}

注释唯一需要的属性是其属性,它应该具有 简短的一句话,描述命令的作用。这允许你的用户 无需离开 shell 即可获得有关命令的一致帮助(请参阅帮助)。@ShellMethodvalue

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

默认情况下,您不需要指定命令的键(即应使用的单词) 在 shell 中调用它)。方法的名称用作命令键,将 camelCase 名称转换为 虚线,GNU 样式的名称(例如,变为 )。sayHello()say-hello

但是,您可以使用注释的属性显式设置命令键:key

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