注解

@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 定义目标类。它将从所有配置类中获取。

@EnableCommand(Example.class)
class App {
}

可以使用 @CommandScan 定义目标类。它将从所有配置类中获取。

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