プログラマティック

プログラムモデルでは、CommandRegistration を @Bean として定義でき、自動的に登録されます。

@Bean
CommandRegistration commandRegistration() {
	return CommandRegistration.builder()
		.command("mycommand")
		.build();
}

すべてのコマンドに共通点がある場合、オートワイヤー可能な CommandRegistration.BuilderSupplier のインスタンスが作成されます。このサプライヤーのデフォルトの実装は新しいビルダーを返すため、その内部状態について心配する必要はありません。

プログラムによって登録されたコマンドは、ヘルプオプションに記載されているヘルプオプションを自動的に追加します。

このサプライヤー型の Bean が定義されている場合、自動構成はバックオフし、デフォルトの機能を再定義するオプションが提供されます。

@Bean
CommandRegistration commandRegistration(CommandRegistration.BuilderSupplier builder) {
	return builder.get()
		.command("mycommand")
		.build();
}

上記のサプライヤーから提供されたビルダーインスタンスを一元的に変更する場合は、CommandRegistrationCustomizer Bean を定義できます。

@Bean
CommandRegistrationCustomizer commandRegistrationCustomizerExample() {
	return builder -> {
		// customize instance of CommandRegistration.Builder
	};
}