学习 spring-boot (一)

相关背景

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

多年以来,Spring IO 平台饱受非议的一点就是大量的 XML 配置以及复杂的依赖管理。在去年的 SpringOne 2GX 会议上,Pivotal 的 CTO Adrian Colyer 回应了这些批评,并且特别提到该平台将来的目标之一就是实现免 XML 配置的开发体验。Boot 所实现的功能超出了这个任务的描述,开发人员不仅不再需要编写 XML,而且在一些场景中甚至不需要编写繁琐的 import 语句。在对外公开的 beta 版本刚刚发布之时,Boot 描述了如何使用该框架在 140 个字符内实现可运行的 web 应用,从而获得了极大的关注度,该样例发表在 tweet 上。

然而,Spring Boot 并不是要成为 Spring IO 平台里面众多 “Foundation” 层项目的替代者。Spring Boot 的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。对于已经熟悉 Spring 生态系统的开发人员来说,Boot 是一个很理想的选择,不过对于采用 Spring 技术的新人来说,Boot 提供一种更简洁的方式来使用这些技术。

在追求开发体验的提升方面,Spring Boot,甚至可以说整个 Spring 生态系统都使用到了 Groovy 编程语言。Boot 所提供的众多便捷功能,都是借助于 Groovy 强大的 MetaObject 协议、可插拔的 AST 转换过程以及内置的依赖解决方案引擎所实现的。在其核心的编译模型之中,Boot 使用 Groovy 来构建工程文件,所以它可以使用通用的导入和样板方法(如类的 main 方法)对类所生成的字节码进行装饰(decorate)。这样使用 Boot 编写的应用就能保持非常简洁,却依然可以提供众多的功能

快速开始

  • 访问 Spring Initializr
  • 选择构建方式 Maven,Spring Boot 版本
  • 填写 group,artifact
  • 选择所需依赖,如果不记得依赖的名称,可以点击 Switch to the full version.

  • 点击 Generate Project, 进行下载。

配置运行

  • 接下压缩包,用你熟悉的 ide 打开项目
  • 删除 mvnwmvnw.cmd 文件和 .mvn 目录
  • 编写一个 Controller
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Controller
    public class HomeController {

    @RequestMapping("/")
    public void hello(HttpServletRequest request, HttpServletResponse response) throws IOException {
    response.getWriter().write("Hello World");
    }

    }
  • 运行 XXApplicationmain 方法,访问 http://localhost:8080,观看到 Hello World,即代表成功。