最新の安定バージョンについては、Spring Shell 3.4.0 を使用してください! |
ネーミング
オプションの長い名前を変更する必要がある場合は、単純な Function<String, String>
である OptionNameModifier
インターフェースを使用して実行できます。このインターフェースでは、元のオプション名が入り、変更された名前が出てきます。
修飾子は CommandRegistration
の OptionSpec
ごとに定義でき、Bean としてグローバルにデフォルト設定するか、構成プロパティを介して定義できます。OptionSpec
で手動で定義された修飾子は、グローバルに定義された修飾子よりも優先されます。デフォルトでは、グローバル修飾子は定義されていません。
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
は何もしません。camel
、snake
、kebab
、pascal
はそれぞれ camelCase
、snake_case
、kebab-case
または PascalCase
の組み込み修飾子をアクティブにします。
CommandRegistration Bean を直接作成する場合、構成プロパティによるグローバルデフォルトは、事前構成された Builder インスタンスを使用する場合にのみ機能します。さらに見る [ シェルコマンドのプログラムモデルの使用 ]。 |
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]