Spring Boot CLI (интерфейс командной строки) — это инструмент командной строки, который можно использовать для быстрого прототипирования приложений Spring. С помощью CLI Spring Boot мы можем быстро создать приложение Spring Boot, написав скрипт Groovy и запустив его через командную строку. Далее давайте узнаем, как установить и использовать интерфейс командной строки Spring Boot.
Установите интерфейс командной строки Spring Boot
Существует множество способов установки Spring Boot CLI.Здесь, в соответствии с текущими основными платформами разработки, подробно описаны способы установки под Windows и Mac:
Универсальная установка
Сначала представьте метод установки, который можно использовать на всех платформах.
Шаг 1. Загрузите инструментарий Spring Boot CLI:
Шаг 2: Разархивируйте загруженный контент, вы можете видеть, что в каталоге bin уже есть два исполняемых файла для платформ windows и linux, и мы можем использовать их напрямую; для того, чтобы использовать команды Spring Boot CLI более удобно, мы можем добавить соответствующий исполняемый файл в каталоге bin выше переменной среды текущей системы.
Установка Mac OS X Brew
Это очень удобно под системой Mac OSX, мы можем установить его через Brew, просто выполните следующие две команды соответственно:
$ brew tap pivotal/tap
$ brew install springboot
Проверить установку
Независимо от того, какой метод используется для установки, после установки мы можем проверить текущий результат установки с помощью следующей команды:
$ spring --version
Spring CLI v2.0.0.RELEASE
Запуск Groovy-скриптов
После завершения установки Spring Boot CLI попробуем использовать его для быстрой сборки приложения Spring Boot, метод очень простой, достаточно сделать следующее:
Шаг 1: Создайте новый сценарий Groovy,hello.groovy
, содержание следующее:
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
Шаг 2: использоватьspring
Команда запускает сценарий Groovy следующим образом:
$ spring run hello.groovy
Resolving dependencies...............................................
*::::::::::::::*
::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::: :.
*::::::::::::::::::::::::::::::::::::: :*:
::::::::::::::::::::::::::::::::::::::::::: *:
.:::::::::::::::::::::::::::::::::::::::::: :
::::::::::::::::::::::::::::::::::::::::::. .:
::::::::::::::::::::::::::::::::::::::::: :
:::::::::::::::::::::::::::::::::::::: *:
:::::::::::::::::::::::::::::::::* :
:::::::::::::::::::* :
::::::::::::::: * *:
.:::::::::::: * .:
:::::::::::. : :
:::::::::: : .:
:::::::::: :: .:
.:::::::: ::: :*
:::::::: ::: :
:::::::: :::: ::
::::::: ::::: *:
::::::: *::::::: ::
:::::::. ::::::::::: :::
:::::::::::::::::::::::* ::::
.::: :::::::::* .:::::*
: ::::::::::::::::::::::::::::::::::::
. .:::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::
*::::::::::::::*
2018-04-04 18:11:20.571 INFO 70477 --- [ runner-0] o.s.boot.SpringApplication : Starting application on zhaiyongchaodeMacBook-Pro.local with PID 70477 (started by zhaiyongchao in /Users/zhaiyongchao/Downloads)
2018-04-04 18:11:20.574 INFO 70477 --- [ runner-0] o.s.boot.SpringApplication : No active profile set, falling back to default profiles: default
2018-04-04 18:11:20.732 INFO 70477 --- [ runner-0] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3c3ad454: startup date [Wed Apr 04 18:11:20 CST 2018]; root of context hierarchy
2018-04-04 18:11:21.758 INFO 70477 --- [ runner-0] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-04-04 18:11:21.783 INFO 70477 --- [ runner-0] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-04-04 18:11:21.784 INFO 70477 --- [ runner-0] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.28
2018-04-04 18:11:21.795 INFO 70477 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/zhaiyongchao/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
2018-04-04 18:11:21.849 INFO 70477 --- [ost-startStop-1] org.apache.catalina.loader.WebappLoader : Unknown loader org.springframework.boot.cli.compiler.ExtendedGroovyClassLoader$DefaultScopeParentClassLoader@5e3b901 class org.springframework.boot.cli.compiler.ExtendedGroovyClassLoader$DefaultScopeParentClassLoader
2018-04-04 18:11:21.884 INFO 70477 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-04-04 18:11:21.885 INFO 70477 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1153 ms
2018-04-04 18:11:22.042 INFO 70477 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-04-04 18:11:22.049 INFO 70477 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-04-04 18:11:22.049 INFO 70477 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-04-04 18:11:22.049 INFO 70477 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-04-04 18:11:22.049 INFO 70477 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-04-04 18:11:22.391 INFO 70477 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3c3ad454: startup date [Wed Apr 04 18:11:20 CST 2018]; root of context hierarchy
2018-04-04 18:11:22.489 INFO 70477 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String ThisWillActuallyRun.home()
2018-04-04 18:11:22.495 INFO 70477 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-04-04 18:11:22.496 INFO 70477 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-04-04 18:11:22.550 INFO 70477 --- [ runner-0] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-04 18:11:22.550 INFO 70477 --- [ runner-0] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-04 18:11:22.598 INFO 70477 --- [ runner-0] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-04 18:11:22.955 INFO 70477 --- [ runner-0] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-04-04 18:11:23.004 INFO 70477 --- [ runner-0] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-04-04 18:11:23.010 INFO 70477 --- [ runner-0] o.s.boot.SpringApplication : Started application in 17.605 seconds (JVM running for 79.248)
Из журнала мы видим, что простое веб-приложение, которое мы определили с помощью скрипта Groovy, было успешно создано, доступ к которому можно получить, обратившись кlocalhost:8080
Чтобы проверить интерфейс, предоставляемый вышеуказанным приложением:
$ curl localhost:8080
Hello World!
Это очень просто? Изменилось ли это ваше впечатление о Java-приложениях?
Справочная документация:getting-started-installing-spring-boot