View on GitHub

spring-boot-in-action

Spring Boot 实战笔记

开发 Spring Boot Cli 应用程序

Spring Boot CLI 的技能

设置 CLI 项目

Spring Boot CLI 项目并没有严格的项目结构要求。

实际上,最简单的 Spring Boot CLI 应用程序就是一个 Groovy 脚本,可以放在文件系统的任意目录里。

创建一个干净 的新目录来存放代码:

$ mkdir helloGroovy
$ cd helloGroovy
$ mkdir static	# 存放静态Web内容
$ mkdir templates	# 存放Thymeleaf模板

Spring Boot 会自动配置一个Spring ResourceHttpRequestHandler 查找static目录(还有其他位置)的静态内容。还会配置Thymeleaf来解析 templates目录里的模板。

目录结构:

├─static
      index.html
└─templates
       hello.ftl

程序入口:App.groovy

运行:

spring run app.groovy

1561980927495

1561980850018

使用 Groovy 语言重写阅读列表应用程序

设置 CLI 项目

创建一个干净 的新目录来存放代码:

$ mkdir readinglist
$ cd readinglist
$ mkdir static	# 存放静态Web内容
$ mkdir templates	# 存放Thymeleaf模板

Spring Boot 会自动配置一个Spring ResourceHttpRequestHandler 查找static目录(还有其他位置)的静态内容。还会配置Thymeleaf来解析 templates目录里的模板。

把 style.css 复制到 static 目录,把 readingList.html 复制到 templates 目录。

目录结构:

├─static
      style.css
└─templates
       readingList.html

通过 Groovy 消除代码噪声

领域类 Book.groovy

Groovy类与它的Java类相比,这里没有setter和getter方 法,没有 public 和 private 修饰符,也没有分号。

接口 ReadingListRepository.groovy

除了没有分号,以及接口上没有 public 修饰符,Groovy版本 和与之对应的Java版本并无二致。

数据库 schema.sql

包含创建 Book 表所需的SQL。

控制器 ReadingListController.groovy
依赖 Grabs.groovy

将 @Grab 注解放在 ReadingListControllerJdbcReadingListRepository 同样有效。

不过,为了便于组织管理,最好创建一个空类,把所有 @Grab 注解放在一起。

这样方便在一个地方看到所有显式声明的依赖。

运行程序

spring run *.groovy

访问程序

http://localhost:8080

1562045691729