Я работаю над интерфейсом командной строки Spring Shell 2 и пытаюсь генерировать команды во время выполнения из определенного интерфейса посредством отражения.
Обновление: реализация интерфейса также генерируется во время выполнения.
Я использую ConfigurableCommandRegistry и MethodTarget для регистрации моей команды.
Есть ли способ настроить / зарегистрировать конвертеры ввремя выполнения для параметров метода, который передается в MethodTarget?
Каков наилучший подход для этого?
Я довольно новичок в Java и Spring, и я не уверен, возможно ли это вообще.Имейте это в виду, и, пожалуйста, не убивайте меня:)
Расширяющаяся Spring Shell документов отсутствует (неполная?)
Я уже проверил Spring shell , но проектне могу найти что-то для работы.
Может быть, это возможно с параметром Resolving?или создание конвертеров во время выполнения с помощью FormatterRegistrar?
Регистрация команд следующим образом
MethodTarget command = new MethodTarget(method, client, new Command.Help(description, group), availabilityIndicator);
registry.register(commandName, command);
Параметр метода и метода, клиент, описание, группа извлекается с помощью отражения из интерфейса.
Я хотел бы сгенерировать команду во время выполнения из интерфейса
public interface MessagingManagement {
@ShellMethod(...)
public void createPerson(@ShellOption(...)Person person);
}
, который можно вызывать со следующими параметрами create-person - person name age (или более параметров)
Короче говоря, яхотел бы создать преобразователи для параметров, которые являются сложными объектами, и сгладить их.
Вложенные объекты игнорируются