powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring shell. Перехват пользовательского ввода.
11 сообщений из 11, страница 1 из 1
Spring shell. Перехват пользовательского ввода.
    #39921926
NTDim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Два вопроса:
Как перехватить пользовательский ввод в приложении для последующего анализа и затем передать управление спрингу дальше ?
Как внутри метода обрабатывающего команду с аннотаций @ShellMethod, запросить от пользователя что то еще ?
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39921943
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NTDim,
У тебя консоль и черный экран. Как то слишком громко звучит про Перехват, Приложение...
Спринг берет из канала ввода клавы команду пользователя и запускает метод.
Код дай. А то непонятно куда дальше надо отправить команду.
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922117
NTDim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Что именно громко звучит ?
Стандартное приложение spring shell:

@SpringBootApplication
public class UserApplication {


public static void main(String[] args) {
SpringApplication app = new SpringApplication(UserApplication.class);

ArrayList<String> argsList = new ArrayList<String>(Arrays.asList(args));
argsList.add("--disableInternalCommands");
String[] argsArray = new String[argsList.size()];
argsArray = argsList.toArray(argsArray);

app.setBanner(new CustomBanner());
app.setLogStartupInfo(false);
app.run(argsArray);
}
}

+

классы типа
...
@ShellComponent
public class UserCommands {

@ShellMethod(value = "Проверка контекста среды(maven, java)", key = "ch")
public String checkContext() {
if (runCommand("--version")) {
return outString("Контекст готов, проверка успешна.", AnsiColor.BRIGHT_MAGENTA);
} else {
return outString("Контекст не готов, проверка не успешна.", AnsiColor.BRIGHT_RED);
}
}
}
...

Вопрос остается тот же.
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922120
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NTDim
Что именно громко звучит ?
слово Приложение для консольной утилиты.

NTDim
Вопрос остается тот же.

Отформатируй код и покажи, что ты назвал пользовательским вводом.
Сабж служит для выполнения заранее написанных методов @ShellMethod
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922122
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мож тебе jshell из java9 нужен?
В программах обычно весь пользовательский ввод это не анархия. А строго заранее определенные поля и методы.
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922291
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозреваю "под перехватить ввод" подразумевается stdin / stdout

Занафига в консольное приложение тащить Spring и всякие JShell.... - конечно у всех свои вкусы, но я этого не понимаю
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922310
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Спринг головного мозга)
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922326
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Подозреваю "под перехватить ввод" подразумевается stdin / stdout

Занафига в консольное приложение тащить Spring и всякие JShell.... - конечно у всех свои вкусы, но я этого не понимаю


Например, когда работаешь с БД.
Через CommandLineRunner норм работается.
Я например писал прикладушки, чтобы cron'у вытягивать данные из одной ИС и класть их в БД.
Oracle'стам очень не нравилось.
Зачем то тыкали в job'ы :-)
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922330
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Ну дак в теме он хочет посимвольно ловить. А не команды заранее защить.
Я сначала сомневался, а раз молчит значит так и есть.
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922345
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сомневаюсь, что Spring смог stdin / stdout заблокировать

Но желание выглядит как-то достаточно коряво. Скорее всего и работать будет коряво. Если интерфейс построен на командах, то желание интерактивного взаимодействия достаточно спорный момент (как минимум скрипты и перенаправление ввода уже будет работать "странно").

IMHO
...
Рейтинг: 0 / 0
Spring shell. Перехват пользовательского ввода.
    #39922582
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Сомневаюсь, что Spring смог stdin / stdout заблокировать

Но желание выглядит как-то достаточно коряво. Скорее всего и работать будет коряво. Если интерфейс построен на командах, то желание интерактивного взаимодействия достаточно спорный момент (как минимум скрипты и перенаправление ввода уже будет работать "странно").

IMHO


Да норм будет.
Только пользовательский ввод лучше делать в CommandLineRunner
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring shell. Перехват пользовательского ввода.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]