You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Spring Shell 2.x中无开关时自动分配参数?

Spring Shell 2.x 禁止参数自动位置分配的方法

要阻止参数被自动按位置分配,强制用户必须通过命名开关(如--name)传递参数,只需给@ShellOption添加mode = ShellOption.Mode.REQUIRED配置即可。

修改后的命令代码:

@ShellMethod
public void greet(@ShellOption(mode = ShellOption.Mode.REQUIRED) String name){
   System.out.println(String.format("Hello %s", name));
}

配置后效果:

  • 仅当输入greet --name Bakir时命令正常执行
  • 直接输入greet Bakir会触发明确的错误提示,告知必须指定--name选项

如果是多参数场景,给每个参数的@ShellOption都加上该配置,就能彻底避免用户因位置输入错误导致的静默问题,系统会直接提示缺失对应命名选项,而非隐式分配错误的参数值。

内容的提问来源于stack exchange,提问作者kvs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:55:28