Spring Shell 2: рефакторинг-безопасный доступ к динамическим командам
Я просто пробую Spring Shell 2. В разделе " Динамическая команда доступности" справочной документации показано три способа указания доступности. Однако все они опираются на схему именования или строковый параметр в аннотации. Это сломается (во время выполнения), если использовать функциональность рефакторинга в 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();
}
}
1 ответ
Обратите внимание, что строковым параметром в аннотации является имя команды, поэтому, если вы укажете его как в методе доступности, так и в методе команды, он сохранит рефакторинг. Бонусные баллы, если вы извлекаете имя команды в константе.