命名

如果需要修改选项长名称,可以完成 用OptionNameModifier界面,这是一个简单的Function<String, String>.在此界面中原始选项 name 进来,修改后的名字出来。spring-doc.cadn.net.cn

修饰符可以定义OptionSpecCommandRegistration, 全局默认为 Bean 或通过 Configuration Properties。 在 中手动定义的修饰符OptionSpecTakes 优先 超过 1 定义 global 。未定义全局修饰符 默认。spring-doc.cadn.net.cn

您可以在CommandRegistration.spring-doc.cadn.net.cn

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

添加一个单例 bean 作为类型OptionNameModifier然后就变成了 全局默认值。spring-doc.cadn.net.cn

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

也可以只使用spring.shell.option.naming.case-type自动配置 一个基于定义的类型。spring-doc.cadn.net.cn

noop就是什么都不做,camel,snake,kebab,pascal激活 的内置修饰符camelCase,snake_case,kebab-casePascalCase分别。spring-doc.cadn.net.cn

如果创建CommandRegistrationbeans 直接、全局 default via configuration 仅在使用 预配置Builder实例。查看更多 [using-shell-commands-programmaticmodel]。
spring:
  shell:
     option:
       naming:
         case-type: noop
         # case-type: camel
         # case-type: snake
         # case-type: kebab
         # case-type: pascal

例如,在 annotated 方法中定义的选项,如下所示。spring-doc.cadn.net.cn

@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.spring-doc.cadn.net.cn

OPTIONS
       --from_snake String
       [Mandatory]

       --fromCamel String
       [Mandatory]

       --from-kebab String
       [Mandatory]

       --FromPascal String
       [Mandatory]

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

OPTIONS
       --from-snake String
       [Mandatory]

       --from-camel String
       [Mandatory]

       --from-kebab String
       [Mandatory]

       --from-pascal String
       [Mandatory]

APP信息