Spring Shell 2:重构安全的动态命令可用性
Spring Shell 2: Refactoring-safe Dynamic Command Availability
我正在尝试 Spring Shell 2. 参考文档的 Dynamic Command Availability 部分显示了三种指示可用性的方法。但是,它们都依赖于注释中的命名方案或字符串参数。如果使用 IDE 的重构功能,这将(在运行时)中断。那么,是否有可能以重构安全的方式使用动态命令可用性功能?
更新 1:
考虑到下面的 ,我认为这个片段演示了解决方案:
@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();
}
}
请注意,注释中的字符串参数是命令名称,因此如果您在可用性方法和命令方法上都指定它,这将在重构后继续存在。
如果以常量形式提取命令名称,则可加分。
我正在尝试 Spring Shell 2. 参考文档的 Dynamic Command Availability 部分显示了三种指示可用性的方法。但是,它们都依赖于注释中的命名方案或字符串参数。如果使用 IDE 的重构功能,这将(在运行时)中断。那么,是否有可能以重构安全的方式使用动态命令可用性功能?
更新 1:
考虑到下面的
@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();
}
}
请注意,注释中的字符串参数是命令名称,因此如果您在可用性方法和命令方法上都指定它,这将在重构后继续存在。 如果以常量形式提取命令名称,则可加分。