| 
 | 
| 
 
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?desktop=1&fid=59&tid=2120914]:  | 
    0ms | 
get settings:  | 
    8ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    37ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    46ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 11ms | 
| total: | 136ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.