Вы добавили функцию segue, а также операцию segue с кнопки, удалите одну из них
Любой бин, который является Converter<String, Person>
, должен работать и автоматически выбираться Spring Shell. Посмотрите на ConversionExample в примерах.
При этом, почему вы говорите, что хотите зарегистрировать все динамически ? Spring Shell предназначен для получения кода, снабженного специальными аннотациями (например, @ShellMethod
). Хотя должна быть возможность динамически выполнять работу, которую выполняют стандартные регистраторы при просмотре этих аннотаций, из ваших примеров видно, что у вас все в порядке с аннотированием кода с помощью @ShellMethod
? Так почему бы не позволить Spring Shell выполнить для вас обнаружение и регистрацию?
Другими словами: почему вы аннотируете интерфейс, а не метод реализации? Если вы это сделаете, вам не придется иметь дело с MethodTarget
и т. Д., Все это делается автоматически для вас Spring Shell.
Надеюсь, это проясняет ситуацию и оказывается самым простым решением