多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Spring Boot Groovy CLI > 原文: [http://zetcode.com/springboot/groovycli/](http://zetcode.com/springboot/groovycli/) 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 加载程序的接口。 ```java $ 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 工具。 ```java $ unzip spring-boot-cli-1.5.7.RELEASE-bin.zip ``` 我们将 ZIP 存档解压缩。 ```java $ cd spring-1.5.7.RELEASE/ $ ls bin INSTALL.txt legal lib LICENCE.txt shell-completion ``` 在`bin`目录中,有`spring`工具是创建 Spring Boot 应用的主要命令。 ```java $ 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` ```java @RestController class MyApp { @RequestMapping("/") String home() { "This is Spring Boot application" } } ``` 该应用将文本消息返回给客户端。 ```java @RestController ``` `@RestController`指示一个 Restful Web 应用。 返回的字符串不表示模板文件的名称。 它直接返回给客户端。 ```java @RequestMapping("/") ``` 使用`@RequestMapping`注解,我们将该方法映射到指定的 URL 路径。 ```java $ spring run first.groovy $ curl localhost:8080 This is Spring Boot application ``` 我们使用`spring run`命令运行该应用,并使用`curl`测试它。 我们没有创建 Maven 或 Gradle 构建文件,也没有进行任何配置。 一切都由 Spring 在后台自动完成。 ## Freemarker 模板 在下面的示例中,我们使用 Freemarker 模板引擎创建一个简单的 Groovy Web 应用。 ```java $ tree . ├── app.groovy ├── static │ └── index.html └── templates └── hello.ftl ``` 我们有这个项目结构。 静态文件位于`static`目录中,而模板文件位于`templates`目录中。 `index.html` ```java <!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` ```java @Controller @Grab('spring-boot-starter-freemarker') class MyApp { @RequestMapping("/greet") String home(Model model, @RequestParam String name) { model.addAttribute("myname", name) return "hello" } } ``` 这是主要的 Groovy 应用文件。 ```java @Controller ``` `@Controller`注解创建一个经典的 MVC Web 应用。 从方法返回的字符串是要处理的模板文件的名称。 ```java @Grab('spring-boot-starter-freemarker') ``` 由于 Spring 无法推断出我们正在使用 Freemarker,因此我们必须告诉 Spring 将其与`@Grab`一起使用。 然后,Spring 为我们自动配置 Freemarker。 Freemarker 模板位于`templates`目录中。 ```java @RequestMapping("/greet") String home(Model model, @RequestParam String name) { model.addAttribute("myname", name) return "hello" } ``` `home()`方法与`@RequestMapping`注解映射到`/greet`路径。 使用`@RequestParam`,我们检索客户端发送的请求参数。 我们将参数添加到模型,并将处理转发到`hello.ftl`模板文件。 `hello.ftl` ```java <!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 应用。 您可能也对相关教程感兴趣: [Spring Boot `@RequestParam`教程](/springboot/requestparam/), [Spring Boot `@ResponseBody`教程](/springboot/responsebody/), [Spring Boot REST H2 教程](/articles/springbootresth2/), [Freemarker 教程](/java/freemarker/), [Java 教程](/lang/java/)。