传统注释
当你使用标准 API 时,bean 上的方法会被转换为可执行的命令,前提是:
-
bean 类带有
@ShellComponent
注解。(这用于限制被考虑的 bean 集合。) -
方法带有
@ShellMethod
注解。
提示
@ShellComponent
是一个原型注解,它本身被 @Component
元注解标注。因此,你可以使用它以及过滤机制来声明 bean(例如,通过使用 @ComponentScan
)。
你可以通过使用该注解的 value
属性来自定义创建的 bean 的名称。
@ShellComponent
static class MyCommands {
@ShellMethod
public void mycommand() {
}
}
@ShellMethod
注解唯一必需的属性是其value
属性,该属性应该有一个简短的一句话描述命令的作用。这样可以让用户在不离开 shell 的情况下获得关于命令的一致帮助(参见帮助)。
备注
你的命令描述应该简短——不超过一到两句话。为了更好的一致性,它应该以大写字母开头,并以句号结尾。
默认情况下,你不需要为你的命令指定键(即在 shell 中调用它时应使用的单词)。方法的名称将被用作命令键,将 camelCase 名称转换为短横线分隔的、gnu 风格的名称(例如,sayHello()
变为 say-hello
)。
不过,你可以通过使用注解的 key
属性来显式设置命令键:
@ShellMethod(value = "Add numbers.", key = "sum")
public int add(int a, int b) {
return a + b;
}
备注
key
属性接受多个值。如果你为单个方法设置多个键,该命令将使用这些不同的别名进行注册。
提示
命令键可以包含几乎所有字符,包括空格。但在命名时,请记住用户通常更喜欢一致性。也就是说,你应该避免将用连字符连接的名称与用空格分隔的名称以及其他不一致的情况混合使用。