第七部分。Spring Boot CLI
Spring Boot CLI是一个命令行工具,如果您想快速开发Spring应用程序,可以使用它。它允许您运行Groovy脚本,这意味着您拥有熟悉的类似
Java的语法,而没有太多的样板代码。您还可以引导新项目或为其编写自己的命令。
66.安装CLI
可以使用SDKMAN手动安装Spring Boot CLI(命令行界面)!(SDK Manager)或使用Homebrew或MacPorts(如果您是OSX用户)。有关
全面的安装说明,请参见 “入门”一节中的第10.2节“安装Spring Boot CLI”。
67.使用CLI
安装CLI后,可以通过键入 spring 并在命令行按Enter键来运行它。如果在没有任何参数的情况下运行 spring ,将显示一个简单的帮助屏幕,
如下所示:
$ spring
usage: spring [--help] [--version]
<command> [<args>]
Available commands are:
run [options] <files> [--] [args]
Run a spring groovy script
... more command help is shown here
您可以键入 spring help 以获取有关任何支持的命令的更多详细信息,如以下示例所示:
$ spring help run
spring run - Run a spring groovy script
usage: spring run [options] <files> [--] [args]
Option Description
------ -----------
--autoconfigure [Boolean] Add autoconfigure compiler
transformations (default: true)
--classpath, -cp Additional classpath entries
-e, --edit Open the file with the default system
editor
--no-guess-dependencies Do not attempt to guess dependencies
--no-guess-imports Do not attempt to guess imports
-q, --quiet Quiet logging
-v, --verbose Verbose logging of dependency
resolution
--watch Watch the specified file for changes
version 命令提供了一种快速检查您正在使用的Spring Boot版本的方法,如下所示:
$ spring version
Spring CLI v2.1.1.RELEASE
67.1使用CLI运行应用程序
您可以使用 run 命令编译和运行Groovy源代码。Spring Boot CLI是完全独立的,因此您不需要任何外部Groovy安装。
以下示例显示了使用Groovy编写的“hello world”Web应用程序:
hello.groovy。
@RestController
class WebApplication {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
要编译并运行该应用程序,请键入以下命令:
$ spring run hello.groovy
要将命令行参数传递给应用程序,请使用 -- 将命令与“spring”命令参数分开,如以下示例所示:
$ spring run hello.groovy -- --server.port=9000
要设置JVM命令行参数,可以使用 JAVA_OPTS 环境变量,如以下示例所示:
$ JAVA_OPTS=-Xmx1024m spring run hello.groovy
在Microsoft Windows上设置 JAVA_OPTS 时,请确保引用整个指令,例如 set "JAVA_OPTS=-Xms256m -Xmx2048m" 。这样做可
确保将值正确传递给流程。
67.1.1扣除“抓住”依赖关系
标准Groovy包含一个 @Grab 注释,它允许您声明对第三方库的依赖性。这个有用的技术让Groovy以与Maven或Gradle相同的方式下载jar,但
不需要你使用构建工具。
Spring Boot进一步扩展了这种技术,并尝试根据您的代码推断出“抓取”哪些库。例如,由于前面显示的 WebApplication 代码使
用 @RestController 注释,Spring Boot获取“Tomcat”和“Spring MVC”。