1.1.1 重新认识 Spring
假设你受命用 Spring 开发一个简单的 Hello World Web 应用程序。你该做什么?我能想到一些基本的需要。
- 一个项目结构,其中有一个包含必要依赖的 Maven 或者 Gradle 构建文件,最起码要有 Spring MVC 和 Servlet API 这些依赖。
- 一个 web.xml 文件(或者一个
WebApplicationInitializer
实现),其中声明了 Spring 的DispatcherServlet
。 - 一个启用了 Spring MVC 的 Spring 配置。
- 一个控制器类,以“Hello World”响应 HTTP 请求。
- 一个用于部署应用程序的 Web 应用服务器,比如 Tomcat。
最让人难以接受的是,这份清单里只有一个东西是和 Hello World 功能相关的,即控制器,剩下的都是 Spring 开发的 Web 应用程序必需的通用样板。既然所有 Spring Web 应用程序都要用到它们,那为什么还要你来提供这些东西呢?
假设这里只需要控制器。代码清单 1-1 所示基于 Groovy 的控制器类就是一个简单而完整的 Spring 应用程序。
代码清单 1-1 一个完整的基于 Groovy 的 Spring 应用程序
@RestController
class HelloController {
@RequestMapping("/")
def hello() {
return "Hello World"
}
}
这里没有配置,没有 web.xml,没有构建说明,甚至没有应用服务器,但这就是整个应用程序了。Spring Boot 会搞定执行应用程序所需的各种后勤工作,你只要搞定应用程序的代码就好。
假设你已经装好了 Spring Boot 的命令行界面(Command Line Interface,CLI),可以像下面这样在命令行里运行 HelloController
:
$ spring run HelloController.groovy
想必你已经注意到了,这里甚至没有编译代码,Spring Boot CLI 可以运行未经编译的代码。
之所以选择用 Groovy 来写这个控制器示例,是因为 Groovy 语言的简洁与 Spring Boot 的简洁有异曲同工之妙。但 Spring Boot 并不强制要求使用 Groovy。实际上,本书中的很多代码都是用 Java 写的,但在恰当的时候,偶尔也会出现一些 Groovy 代码。
不要客气,直接跳到 1.2.1 节吧,看看如何安装 Spring Boot CLI,这样你就能试着编写这个小小的 Web 应用程序了。现在,你将看到 Spring Boot 的关键部分,看到它是如何改变 Spring 应用程序的开发方式的。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论