Spring Boot 2+Thymeleaf企业应用实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 Spring Boot介绍

我们先来了解一下Spring Boot项目。

2.1.1 Spring Boot简介

开发一个全新的项目,需要先搭建开发环境,例如确定要使用的技术框架及版本,还要考虑各个框架之间的版本兼容问题。完成这些烦琐的工作后,还要对新项目进行配置,测试其能否正常运行,最后才将搭建好的环境提交给项目组的其他成员使用。经常会出现的情形是,项目表面上已经成功运行,但部分项目组成员仍然无法运行项目。对于每一个项目,在初期都会浪费大量的时间做这些固定的事情。

受Ruby On Rails、Node.js等技术的影响,Java EE领域需要一种更为简便的开发方式,来取代这些烦琐的项目搭建工作。在此背景下,Spring推出了Spring Boot项目,该项目可以让使用者更快速地搭建项目,从而使用者可以更专注于业务系统的开发。系统配置、基础代码、项目依赖的jar包,甚至开发时所用到的应用服务器等,Spring Boot都可以帮我们准备好。只要在建立项目时,使用构建工具加入相应的Spring Boot依赖包,项目即可运行,使用者无须关心版本兼容等问题。

Spring Boot支持Maven和Gradle这两款构建工具。Gradle使用Groovy语言编写构建脚本,与Maven、Ant等构建工具有良好的兼容性。鉴于笔者使用Maven较多,因此本书使用Maven作为项目构建工具。本书成书时,Spring Boot最新的正式版本为2.0.1,其要求Maven版本为3.2或以上。

2.1.2 starter模块

Spring Boot提供了许多starter模块,starter为我们提供了“一站式”服务,在项目中另加入对应框架的starter的依赖,可以免去我们到处寻找依赖包的烦恼。只需要加入一个依赖,项目就可以运行,这就是starter的作用。例如,如果你想让你的项目拥有访问关系型数据库的能力,则只需要在你的项目中加入spring-boot-starter-data-jpa依赖就可以实现:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>

Spring Boot官方提供的starter模块,命名规则为“spring-boot-starter-*”,其中“*”代表对应的应用类型,这些starter的名称,可以帮助我们快速地找到相应的依赖。如果想构建自己的starter模块,官方建议命名规则为“project-spring-boot-starter”。本书的很多章节都会使用starter模块。

下面介绍一些比较常用的starter模块。

spring-boot-starter-web:用于构建Web应用的starter模块,加入该依赖后,会包含Spring MVC框架,默认内嵌Tomcat容器。

spring-boot-starter-jpa:用于构建Spring Data JPA应用,使用Hibernate作为ORM框架。

spring-boot-starter-mongodb:用于构建Spring Data MongoDB应用,底层使用MongoDB驱动操作MongoDB数据库。

spring-boot-starter-redis:用于构建Spring Data Redis应用,使用Jedis框架操作Redis数据库。

spring-boot-starter-thymeleaf:构建一个使用Thymeleaf作为视图的Web应用。

spring-boot-starter-test:顾名思义,这个starter模块主要用于进行单元测试。