如果需要修改选项长名称,可以完成 使用一个简单的界面。在此界面中,原始选项 名称进入,修改后的名称出来。OptionNameModifierFunction<String, String>

修饰符可以按 中定义, 全局默认为 Bean 或通过配置属性。 在 takes 中手动定义的修饰符优先 超过一个全局定义。没有定义全局修饰符 默认。OptionSpecCommandRegistrationOptionSpec

您可以在 中使用 中的选项定义一个。CommandRegistration

CommandRegistration.builder()
	.withOption()
		.longNames("arg1")
		.nameModifier(name -> "x" + name)
		.and()
	.build();

添加一个单例 bean 作为类型,这将变成 全局默认值。OptionNameModifier

@Bean
OptionNameModifier sampleOptionNameModifier() {
	return name -> "x" + name;
}

也可以只添加用于自动配置的配置属性 一个基于定义的类型。spring.shell.option.naming.case-type

noop是什么都不做,、camelsnakekebabpascalcamelCasesnake_casekebab-casePascalCase

如果直接创建 bean,则全局 默认通过配置属性仅在使用 预配置实例。请参阅更多 [using-shell-commands-programmaticmodel]。CommandRegistrationBuilder
如果直接创建 bean,则全局 默认通过配置属性仅在使用 预配置实例。请参阅更多 [using-shell-commands-programmaticmodel]。CommandRegistrationBuilder
spring:
  shell:
     option:
       naming:
         case-type: noop
         # case-type: camel
         # case-type: snake
         # case-type: kebab
         # case-type: pascal

例如,在像这样的带注释的方法中定义的选项。

@ShellMethod(key = "option-naming-sample")
public void optionNamingSample(
	@ShellOption("from_snake") String snake,
	@ShellOption("fromCamel") String camel,
	@ShellOption("from-kebab") String kebab,
	@ShellOption("FromPascal") String pascal
) {}

默认情况下,该命令显示名称即将到来 直接来自 .help@ShellOption

OPTIONS
       --from_snake String
       [Mandatory]

       --fromCamel String
       [Mandatory]

       --from-kebab String
       [Mandatory]

       --FromPascal String
       [Mandatory]

定义和默认 添加修饰符,选项名称如下所示。spring.shell.option.naming.case-type=kebab

OPTIONS
       --from-snake String
       [Mandatory]

       --from-camel String
       [Mandatory]

       --from-kebab String
       [Mandatory]

       --from-pascal String
       [Mandatory]