我正在寻找使用 Spring-Shell
为技术支持团队构建一个诊断实用程序。这个想法是将可执行的 jar
放到系统上,运行应用程序并让它通过一系列诊断。
我想禁用/删除一些从 org.springframework.shell.commands 包自动加载的命令,但我不太清楚如何做到这一点。可能吗?
如果做不到这一点,我只想自定义帮助命令,以便我可以输出自己的帮助。我什至无法让它工作,尽管我能够弄清楚如何从用户点击 TAB 时显示的命令列表中删除它们。
@CliAvailabilityIndicator({"!", "//", "script","system"})
public boolean isAvailable()
{
return false;
}
有什么想法吗?
最佳答案
事实证明,根据http://docs.spring.io/spring-shell/docs/current/reference/htmlsingle/#d4e173 ,可以使用命令行参数调用 spring shell 应用程序以禁用内部命令。所以我所做的是在我的应用程序的主要方法中我自己添加参数。
public static void main(String[] args) throws IOException
{
ArrayList<String> argsList = new ArrayList<String>(Arrays.asList(args));
argsList.add("--disableInternalCommands");
String[] argsArray = new String[argsList.size()];
argsArray = argsList.toArray(argsArray);
Bootstrap.main(argsArray);
}
可能有一种更简洁的方法将参数添加到 args 参数...但这超出了这个问题的范围。
关于java - 从 Spring-Shell 中删除命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29948898/