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 ответ

Решение

Обратите внимание, что строковым параметром в аннотации является имя команды, поэтому, если вы укажете его как в методе доступности, так и в методе команды, он сохранит рефакторинг. Бонусные баллы, если вы извлекаете имя команды в константе.

Другие вопросы по тегам