Alias

为命令定义 alias 是可行的。这对于您想要创建命令的较短版本或遍历完整的命令重命名,同时暂时保留旧命令的情况很方便。

alias 的格式与 command 略有不同。当 command 被定义为数组时,它被连接成一个单独的命令。当 alias 被定义为数组时,它用于创建单独的别名。

带有普通 CommandRegistration 的别名既简单又清晰,因为您可以确切地得到定义的内容,因为它没有“魔力”。

Unresolved include directive in modules/ROOT/pages/commands/alias.adoc - include::../../../../src/test/java/org/springframework/shell/docs/CommandRegistrationAliasSnippets.java[]

使用 @Command 注解定义别名稍微复杂一些,因为它可以在类和方法级别上存在。以下是它如何工作的示例。

仅在方法上定义别名会提供 myalias

Unresolved include directive in modules/ROOT/pages/commands/alias.adoc - include::../../../../src/test/java/org/springframework/shell/docs/CommandRegistrationAliasSnippets.java[]

myalias1myalias2(如果定义为数组)。

Unresolved include directive in modules/ROOT/pages/commands/alias.adoc - include::../../../../src/test/java/org/springframework/shell/docs/CommandRegistrationAliasSnippets.java[]

仅在类级别上的别名不起作用,因为它只是 method level if defined 上注解的指令。

Unresolved include directive in modules/ROOT/pages/commands/alias.adoc - include::../../../../src/test/java/org/springframework/shell/docs/CommandRegistrationAliasSnippets.java[]

类和方法级别的别名将两者结合在一起,其中类级别作为前缀,方法级别作为别名的组合。类级别的别名通常与 command 前缀一起使用,以将别名保留在同一命令级别。

在这里,您将获得别名 myalias1 myalias2

Unresolved include directive in modules/ROOT/pages/commands/alias.adoc - include::../../../../src/test/java/org/springframework/shell/docs/CommandRegistrationAliasSnippets.java[]

在方法级别上有一种特殊的格式,即 empty string,它允许您创建别名,但它只使用类级别的前缀。

在这里,您将获得别名 myalias1

Unresolved include directive in modules/ROOT/pages/commands/alias.adoc - include::../../../../src/test/java/org/springframework/shell/docs/CommandRegistrationAliasSnippets.java[]