Spring Boot Groovy CLI 教程是使用命令行界面的 Spring Boot 框架入门教程。 在本教程中,我们使用 Groovy 语言。
Spring 是流行的 Java 应用框架,而 Spring Boot 是 Spring 的演进,可以帮助轻松地创建独立的,生产级的基于 Spring 的应用。 Spring 支持 Java 和 Groovy 语言。 Spring 5 支持 Kotlin 语言。
Spring Boot CLI
Spring Boot 命令行界面(CLI)是使用命令行工具创建 Spring Boot 应用的一种方式。 Spring Boot CLI 帮助开发人员轻松创建和运行 Spring 应用。
请注意,Spring Boot CLI 可用于创建 Java 和 Groovy 应用。
安装 Spring Boot CLI
Spring Boot CLI 的主要命令是 Bash 脚本,它是 Spring Boot 加载程序的接口。
$ wget http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.5.7.RELEASE/spring-boot-cli-1.5.7.RELEASE-bin.zip
我们从 Spring 资料库下载带有wget
的 CLI 工具。
$ unzip spring-boot-cli-1.5.7.RELEASE-bin.zip
我们将 ZIP 存档解压缩。
$ cd spring-1.5.7.RELEASE/
$ ls
bin INSTALL.txt legal lib LICENCE.txt shell-completion
在bin
目录中,有spring
工具是创建 Spring Boot 应用的主要命令。
$ export PATH=$PATH:~/bin/spring-1.5.7.RELEASE/bin/
我们可以将工具的主目录添加到PATH
变量中,以方便地访问命令。
Spring Boot Groovy 应用
Spring Boot Groovy 应用可用于快速应用开发和 Spring 应用原型设计。 Spring 尝试使用 Groovy 简化编程。 对于 Groovy 应用,Spring 在幕后做了很多魔术:
- 自动下载依赖项
- 自动配置应用
- 自动创建应用入口点
- 默认导入语句
使用spring run
命令启动 Groovy 应用。
简单的 Groovy 应用
以下是一个简单的 Spring Boot Groovy 应用。
first.groovy
@RestController
class MyApp {
@RequestMapping("/")
String home() {
"This is Spring Boot application"
}
}
该应用将文本消息返回给客户端。
@RestController
@RestController
指示一个 Restful Web 应用。 返回的字符串不表示模板文件的名称。 它直接返回给客户端。
@RequestMapping("/")
使用@RequestMapping
注解,我们将该方法映射到指定的 URL 路径。
$ spring run first.groovy
$ curl localhost:8080
This is Spring Boot application
我们使用spring run
命令运行该应用,并使用curl
测试它。 我们没有创建 Maven 或 Gradle 构建文件,也没有进行任何配置。 一切都由 Spring 在后台自动完成。
Freemarker 模板
在下面的示例中,我们使用 Freemarker 模板引擎创建一个简单的 Groovy Web 应用。
$ tree
.
├── app.groovy
├── static
│ └── index.html
└── templates
└── hello.ftl
我们有这个项目结构。 静态文件位于static
目录中,而模板文件位于templates
目录中。
index.html
<!DOCTYPE html>
<html>
<head>
<title>Home page</title>
<meta charset="UTF-8">
</head>
<body>
<form action="/greet">
<label>Enter your name:</label>
<input type="text" name="name">
<button type="submit">Submit</button>
</form>
</body>
</html>
这是主页。 它包含一个将数据发送到 Web 应用的表单。
app.groovy
@Controller
@Grab('spring-boot-starter-freemarker')
class MyApp {
@RequestMapping("/greet")
String home(Model model, @RequestParam String name) {
model.addAttribute("myname", name)
return "hello"
}
}
这是主要的 Groovy 应用文件。
@Controller
@Controller
注解创建一个经典的 MVC Web 应用。 从方法返回的字符串是要处理的模板文件的名称。
@Grab('spring-boot-starter-freemarker')
由于 Spring 无法推断出我们正在使用 Freemarker,因此我们必须告诉 Spring 将其与@Grab
一起使用。 然后,Spring 为我们自动配置 Freemarker。 Freemarker 模板位于templates
目录中。
@RequestMapping("/greet")
String home(Model model, @RequestParam String name) {
model.addAttribute("myname", name)
return "hello"
}
home()
方法与@RequestMapping
注解映射到/greet
路径。 使用@RequestParam
,我们检索客户端发送的请求参数。 我们将参数添加到模型,并将处理转发到hello.ftl
模板文件。
hello.ftl
<!DOCTYPE html>
<html>
<head>
<title>Home page</title>
<meta charset="UTF-8">
</head>
<body>
<p>Hello ${myname}, today is a beautiful day!</p>
</body>
</html>
hello.ftl
模板文件发送带有消息的 HTML 页面。 该消息包含从 HTML 表单发送的人员的姓名。 来自模型的值以 Freemarker ${}
语法显示。
在本教程中,我们使用 Spring Boot CLI 在 Groovy 中创建了简单的 Spring 应用。