アノテーション

@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 {
}