|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
Всем привет! Два вопроса: Как перехватить пользовательский ввод в приложении для последующего анализа и затем передать управление спрингу дальше ? Как внутри метода обрабатывающего команду с аннотаций @ShellMethod, запросить от пользователя что то еще ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 17:10 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
NTDim, У тебя консоль и черный экран. Как то слишком громко звучит про Перехват, Приложение... Спринг берет из канала ввода клавы команду пользователя и запускает метод. Код дай. А то непонятно куда дальше надо отправить команду. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 17:53 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
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); } } } ... Вопрос остается тот же. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 07:38 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
NTDim Что именно громко звучит ? NTDim Вопрос остается тот же. Отформатируй код и покажи, что ты назвал пользовательским вводом. Сабж служит для выполнения заранее написанных методов @ShellMethod ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 07:55 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
Мож тебе jshell из java9 нужен? В программах обычно весь пользовательский ввод это не анархия. А строго заранее определенные поля и методы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 08:10 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
Подозреваю "под перехватить ввод" подразумевается stdin / stdout Занафига в консольное приложение тащить Spring и всякие JShell.... - конечно у всех свои вкусы, но я этого не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 14:17 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Спринг головного мозга) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 14:44 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Подозреваю "под перехватить ввод" подразумевается stdin / stdout Занафига в консольное приложение тащить Spring и всякие JShell.... - конечно у всех свои вкусы, но я этого не понимаю Например, когда работаешь с БД. Через CommandLineRunner норм работается. Я например писал прикладушки, чтобы cron'у вытягивать данные из одной ИС и класть их в БД. Oracle'стам очень не нравилось. Зачем то тыкали в job'ы :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 15:23 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
mad_nazgul, Ну дак в теме он хочет посимвольно ловить. А не команды заранее защить. Я сначала сомневался, а раз молчит значит так и есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 15:30 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
Сомневаюсь, что Spring смог stdin / stdout заблокировать Но желание выглядит как-то достаточно коряво. Скорее всего и работать будет коряво. Если интерфейс построен на командах, то желание интерактивного взаимодействия достаточно спорный момент (как минимум скрипты и перенаправление ввода уже будет работать "странно"). IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 15:43 |
|
Spring shell. Перехват пользовательского ввода.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Сомневаюсь, что Spring смог stdin / stdout заблокировать Но желание выглядит как-то достаточно коряво. Скорее всего и работать будет коряво. Если интерфейс построен на командах, то желание интерактивного взаимодействия достаточно спорный момент (как минимум скрипты и перенаправление ввода уже будет работать "странно"). IMHO Да норм будет. Только пользовательский ввод лучше делать в CommandLineRunner ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 06:09 |
|
|
start [/forum/topic.php?fid=59&fpage=18&tid=2120914]: |
0ms |
get settings: |
23ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
260ms |
get tp. blocked users: |
2ms |
others: | 323ms |
total: | 687ms |
0 / 0 |