注解

@Command 注解用于方法时,将其标记为命令注册的候选者。在下面的例子中,定义了一个 example 命令。

class Example {

	@Command(command = "example")
	public String example() {
		return "Hello";
	}
}

@Command 注解可以放在类上,用于定义同一类中 @Command 方法的默认值或共享设置。在下面的例子中,定义了一个 parent example 命令。

@Command(command = "parent")
class Example {

	@Command(command = "example")
	public String example() {
		return "Hello";
	}
}

使用 @Command 不会自动注册命令目标,而是需要使用 @EnableCommand 和/或 @CommandScan 注解。这种模式在 Spring 体系的其他部分也很常见,为用户提供了更好的灵活性,可以包含而非排除命令目标。

您可以使用 @EnableCommand 定义目标类。它将从所有 Configuration 类中选取。

@EnableCommand(Example.class)
class App {
}

您可以使用 @CommandScan 定义目标类。它将从所有 Configuration 类中选取。

在 Spring Boot App 类的顶级定义 @CommandScan,它将自动扫描 App 下所有包和类中的所有命令目标。
@CommandScan
class App {
}