在Spring Shell版本2.x中,如何防止在参数没有开关的情况下自动赋值?

2ic8powd  于 2022-10-04  发布在  Spring
关注(0)|答案(1)|浏览(139)

我已经切换到了Spring Shell版本2。假设我有一个接受一个参数的命令:

@shellMethod
public void greet(@ShellOption String name){
   System.out.println(String.format("Hello %s", name);
}

输入greet --name Bakirgreet Bakir的行为相同。这意味着,即使用户没有指定,Spring外壳也会将Bakir赋给name。如果有多个参数,并且用户忘记在正确的位置输入一个开关(取决于方法的参数列表顺序),则会导致静默错误。在SpringShell2.x中,有什么方法可以阻止这种任务吗?

polkgigr

polkgigr1#

您可以声明具有多个参数的方法。例如,您可以在下面尝试一下。

@ShellMethod
public String example(
    @ShellOption(value = { "-a" }) String arg1,
    @ShellOption(value = { "-b" }) String arg2,
    @ShellOption(value = { "-c" }) String arg3
) {
    return "Hello " + arg1;
}

有关详细信息,您可以阅读Spring Shell文档中的文档

相关问题