传统注解

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

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

  • 方法带有 @ShellMethod 注解。

@ShellComponent 是一个原型注解,它本身被 @Component 元注解。因此,除了过滤机制之外,您还可以使用它来声明 bean(例如,通过使用 @ComponentScan)。

您可以通过使用注解的 value 属性来自定义所创建 bean 的名称。

@ShellComponent
static class MyCommands {

	@ShellMethod
	public void mycommand() {
	}
}

@ShellMethod 注解唯一必需的属性是其 value 属性,它应该包含一个简短的一句话描述,说明该命令的作用。这让您的用户无需离开 shell 即可获得关于您命令的一致帮助(请参阅帮助)。

您的命令描述应该简短——不超过一两句话。为了更好地保持一致性,它应该以大写字母开头并以句号结尾。

默认情况下,您不需要为您的命令指定键(即,在 shell 中调用它时应该使用的单词)。方法名用作命令键,将驼峰式命名转换为带短划线的 GNU 风格命名(例如,sayHello() 变为 say-hello)。

但是,您可以通过使用注解的 key 属性来显式设置命令键。

@ShellMethod(value = "Add numbers.", key = "sum")
public int add(int a, int b) {
	return a + b;
}
key 属性接受多个值。如果您为一个方法设置了多个键,则该命令会以这些不同的别名注册。
命令键可以包含几乎任何字符,包括空格。但是,在命名时请记住,一致性通常会受到用户的欢迎。也就是说,您应该避免混合使用带短划线的名称与带空格的名称以及其他不一致之处。
© . This site is unofficial and not affiliated with VMware.