Spring Shell 2:重构安全的动态命令可用性

时间:2017-09-20 14:46:20

标签: spring-shell

我只是在试用Spring Shell 2.参考文档的Dynamic Command Availability部分显示了三种表示可用性的方法。但是,它们都依赖于注释中的命名方案或字符串参数。如果使用IDE的重构功能,这将中断(在运行时)。那么,是否有可能以重构安全的方式使用动态命令可用性功能?

更新1:

考虑下面的answer,我认为此代码段演示了解决方案:

@ShellComponent
public class MyCommands {
    private final static String ADD_NAME = "add";

    @ShellMethod(key=ADD_NAME, value = "Add two integers together.")
    public int addTwoInts(int a, int b) {
        return a+b;
    }

    @ShellMethodAvailability(ADD_NAME)
    public Availability checkAddAvailability() {
        return Availability.available();
    }
}

1 个答案:

答案 0 :(得分:1)

请注意,注释中的字符串参数是命令名称,因此如果您在可用性方法和命令方法上同时指定它,则这将在重构后继续存在。 如果您以常量提取命令名称,则会获得奖励。