此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3spring-doc.cn

命名

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

修饰符可以按 in 定义, 全局默认为 Bean 或通过 Configuration Properties。 在 takes 中手动定义的修饰符优先 超过 1 定义 global 。未定义全局修饰符 默认。OptionSpecCommandRegistrationOptionSpecspring-doc.cn

您可以在 中使用 中的选项定义一个 。CommandRegistrationspring-doc.cn

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

添加一个单例 bean 作为类型,这将变为 全局默认值。OptionNameModifierspring-doc.cn

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

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

noop不执行任何操作,则 、 分别激活 、 或 的内置修饰符。camelsnakekebabpascalcamelCasesnake_casekebab-casePascalCasespring-doc.cn

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

例如,在 annotated 方法中定义的选项,如下所示。spring-doc.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@ShellOptionspring-doc.cn

OPTIONS
       --from_snake String
       [Mandatory]

       --fromCamel String
       [Mandatory]

       --from-kebab String
       [Mandatory]

       --FromPascal String
       [Mandatory]

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

OPTIONS
       --from-snake String
       [Mandatory]

       --from-camel String
       [Mandatory]

       --from-kebab String
       [Mandatory]

       --from-pascal String
       [Mandatory]