spring shell 예제

Posted on

터미널에 명령 실행 결과를 작성할 때 Spring Shell의 AbstractShell은 명령에서 반환되는 인스턴스를 검사하고 INFO 수준에서 결과 개체의 toString() 출력을 로그합니다. 결과 개체가 이터블의 인스턴스인 경우 컬렉션을 통해 반복해서 각 항목의 toString()을 기록합니다: 첫 번째는 응용 프로그램의 진입점에서 셸을 부트스트랩하고 사용자가 명령을 입력하도록 하는 것입니다: Spring Shell은 맨 위에 있는 프레임워크입니다. 프린팅 프레임워크에서는 명령줄 인수를 java 개체로 변환하기 위해 스프링 기본 변환기를 사용합니다. 스프링 쉘 코어 프레임 워크는 쉘에서 종료 하는 exit 명령 같은 기본 명령 함께 제공, 설명으로 모든 명령을 표시 하는 데 도움이 명령. 스프링 쉘은 내부적으로 쉘 응용 프로그램에 JLine(java 콘솔 입력 라이브러리)을 사용하는 프레임워크입니다. 콘솔에서 사용자 입력을 읽고 편집하기 위한 핵심 라이브러리입니다. 그것은 탭 완료에 대 한 지원을 제공 합니다., 암호 마스킹, 사용자 지정 키 바인딩, 그것은 또한 명령 기능의 체인을 제공 합니다. JLine은 또한 일반적인 자바 응용 프로그램과 같은 모든 운영 체제를 지원, JLine은 주로 자바에서 개발하지만, JLine은 윈도우 OS를 지원하기 위해 Jansi를 사용합니다. 명령은 스프링 셸 라이브러리의 핵심이며 클래식 웹 또는 Rest API 응용 프로그램의 컨트롤러 개체와 동일합니다. 즉, 명령은 사용자 입력 처리를 담당하는 상위 수준의 구성 요소입니다. 참고로 나는 자바 구성 지원을 추가하는 스프링 쉘에 대한 PR이 : https://github.com/spring-projects/spring-shell/pull/66 이것은 필요한 정보를 제공하는 EchoCommand에 추가 된 @ShellMethod 및 @ShellOption 주석의 결과입니다.

스프링 쉘에. 사용자 지정 옵션에 대한 자세한 내용은 공식 스프링 쉘 설명서를 참조하십시오. 우리의 목표는 특정 IP 주소에서 열린 포트를 스캔 할 수있는 응용 프로그램을 만드는 것입니다. 따라서 명령줄 응용 프로그램을 만드는 것이 좋을 것이고 Spring Shell은 우리가 그렇게하는 데 도움이 될 것입니다. 마지막 줄은 우리의 응용 프로그램이 이제 우리의 입력을 받아 들일 준비가 되었다고 말합니다. 이 시점에서 “도움말”을 입력하여 스프링 셸 응용 프로그램에서 기본적으로 사용할 수 있는 미리 정의된 명령 목록을 볼 수 있으며 이와 유사한 출력이 표시됩니다. s. 먼저 패키지 com.ag04.clidemo.shell에서 PromptColor: 기술: Java 응용 프로그램이 스프링 셸 프레임워크를 사용하여 Java 응용 프로그램과 상호 작용하는 명령줄 도구입니다. 스프링 쉘은 스프링 기반 응용 프로그램에 대한 명령줄 기능을 제공하는 프레임워크입니다. 우리는 우리 자신의 명령을 쓸 수 있습니다 그리고 우리는 봄 원격 쉘의 상단에 명령을 실행할 수 있습니다. 간단히 말해, Spring Shell 프로젝트는 스프링 프로그래밍 모델을 사용하여 명령을 처리하고 모든 기능을 갖춘 CLI를 구축하기 위한 대화형 셸을 제공합니다.

명령이 셸에 노출되어야 하는 경우 런타임에 부울을 반환하는 메서드에 @CliAvailabilityIndicator 추가를 사용할 수 있습니다. 이 문서의 예제에 가장 적합한 첫 번째 방법을 사용할 수 있지만 소스 코드에서는 두 번째 양식을 사용하는 테스트 사례를 찾을 수 있습니다. 그리고 mvn 패키지를 실행 한 다음 appassembler bin 폴더에는 실행 파일이 포함되어 있습니다. 우리는 빌드 도구로 gradle을 사용하는 경우 우리는 아래 줄 build.gradle 파일을 추가해야합니다 : mainClassName = “org.springframework.shell.Bootstrap” defaultTasks `installApp` 요구 사항: 스프링 쉘은 JDK 6.0 이상 및 봄 3.0 이상이 필요합니다.