本书先逐步介绍Spring Boot开发的基础知识;包括Spring Boot的简介、开发起步、相关注解介绍和Web应用开发、数据库访问、数据库访问、Web服务开发、数据处理、文件应用、WebFlux开发以及示例代码。然后结合一个简单案例演示了Spring Boot开发的全过程。本书内容由浅入深,结合示例介绍各个知识点,按照开发步骤的方式组织内容;可以帮助读者更好地理解、掌握Spring Boot开发技术。
本书内容通俗易懂,适合Spring Boot开发的初学者(特别是在校学生)、Web应用开发者和企业级应用开发爱好者等读者;可以作为大学课程的教学用教材、自学的入门读物、开发过程的参考书。
第2章
Spring Boot开发起步
本章主要介绍如何配置Spring Boot的开发环境、如何用两款常见开发工具创建项目、如何用两款常见开发工具实现Hello World的Web应用、以Hello World应用为例说明项目属性配置、Spring Boot开发的一般步骤等内容。
2.1 配置开发环境
Pivotal团队设计Spring Boot的目的是简化Spring应用的搭建和开发过程。Spring Boot使用特定的方式进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot在蓬勃发展的快速应用开发领域成为领导者。Spring Boot的特点包括创建独立的Spring应用程序、自动配置Spring等。
在进行Spring Boot开发之前,先要配置好开发环境。配置开发环境,需要先安装JDK,然后选择安装一款合适的开发工具(如IntelliJ IDEA)。
2.1.1 安装JDK
使用2.0.0以上版本的Spring Boot需要安装 1.8及以上版本的JDK,可以从Java的官网(http://www.oracle.com/technetwork/java/javase/downloads/index.html)下载安装包。安装完成后,配置环境JAVA_HOME。配置好JAVA_HOME后,将%JAVA_HOME%\bin加入系统的环境变量path中。完成配置后,打开Windows命令处理程序CMD,输入命令java -version,如果见到如图2-1所示的版本信息就说明JDK安装成功了。
图2-1 JDK安装成功后显示的版本信息
2.1.2 安装IntelliJ IDEA
可以从IntelliJ IDEA(以下简称为IDEA)的官网(https://www.jetbrains.com)下载免费的社区版或者旗舰试用版IDEA,然后进行安装,安装完成后打开IDEA,将显示如 图2-2所示的欢迎界面。由于IDEA自带有Maven和Gradle插件,所以不用再安装Maven和Gradle插件。
图2-2 IDEA启动后的欢迎界面
2.1.3 安装Spring Tool Suite
Spring Tool Suite(以下简称STS)是被包装过的Eclipse,主要用于快速地开发Spring项目。利用STS开发者不再需要编辑烦琐的XML配置文件,而是由工具自动生成。STS有两种安装方式:一种是在Eclipse中安装STS插件;另一种是从官网(https://spring.io/tools/ sts/all)上直接下载、安装STS。还可以从官网上直接下载解压缩后即可使用的STS。STS启动后的界面如图2-3所示。
图2-3 STS启动后的界面
由于STS只是自带有Maven插件,所以需要使用Gradle进行开发时,需要再安装Gradle插件。安装Gradle插件的步骤包括:首先选择菜单栏Help项中Eclipse Marketplace子项后进入Marketplace页面;然后在Find文本框中输入Gradle进行搜索;最后单击Install按钮就可以成功安装Gradle插件。STS中安装Gradle插件的界面如图2-4所示。
图2-4 STS中安装Gradle插件的界面
2.2 创建项目
可以用不同的工具创建Spring Boot项目,每种工具也可以采用不同的创建项目方法。本节介绍两种常见开发工具创建项目的方法。
2.2.1 利用IDEA创建项目
先在如图2-2所示的欢迎界面中选择Create New Projcet链接进入项目创建界面,并选择Spring Initializr类型的项目,如图2-5所示。
图2-5 IDEA中创建新项目时选择Spring Initializr类型项目的界面
接着,单击Next按钮跳转到项目信息的配置界面,IDEA创建新项目时要根据项目情况设置项目的元数据(Project Matedata),设置项目元数据的界面如图2-6所示。
如图2-6所示,在所创建项目Group文本框中输入com.bookcode,在Artifact文本框中输入springboot-helloworlds,在所创建项目的管理工具类型Type中选择Maven Project。由于目前Maven的参考资料比Gradle的参考资料多且更容易获得,本书示例使用Maven进行项目管理。开发语言Language选择Java;打包方式Packaging选择Jar;开发工具Java的版本Java Version选择8(也称为1.8);所创建项目的版本Version保留自动生成的0.0.1-SNAPSHOT;项目名称Name保留自动生成的springboot-helloworlds;项目描述Description可以修改为Book Code for Spring Boot;所创建项目默认的包名Package可以修改为com.bookcode。
图2-6 IDEA创建新项目时设置项目元数据(Project Metadata)的界面
填写完项目的元数据后,单击Next按钮就可以进入选择项目依赖(Dependencies)的界面。如图2-7所示,IDEA自动选择了Spring Boot的最新版本(本例中2.0.2版),也可以手动选择所需要的版本,再手动为所创建的项目(springboot-helloworlds)选择Web依赖。选择完Web依赖,IDEA就可以帮助开发者完成Web项目的初始化工作。创建项目时,也可以不选择任何依赖,而在文件pom.xml中添加所需要的依赖。
图2-7 IDEA创建新项目时选择依赖(Dependencies)的界面
单击Next按钮后,进入项目名称(Project Name)和项目位置(Project Location)的显示页面,可以直接保留由图2-6生成的项目名称、位置默认值;也可以根据需要直接修改项目名称和项目位置。然后单击Finish按钮,就可以进入项目界面。由于所创建的项目管理类型为Maven Project,所以项目中pom.xml文件是一个关键文件,其代码如例2-1所示。例2-1代码中加粗部分代码和在图2-6和图2-7中输入、选择的项目元等数据对应,其他代码是IDEA自动生成的辅助内容。其中,<parent>和</parent>之间的内容表示父依赖,是一般项目都要用到的基础内容,包含了项目中用到的Spring Boot的版本信息。<properties>和</properties>之间的内容表示了项目中所用到的Java版本信息和编码格式。<dependencies>和</dependencies>之间的信息是Maven的重点内容,包含了项目中所用到的依赖信息,其中<artifactId>spring-boot-starter-test</artifactId>表示要用到测试依赖,测试依赖在创建项目时自动增加,无须再手动添加;<artifactId>spring-boot-starter-web</artifactId>表示要用到Web依赖。<build>和</build>之间的内容表示编译运行时要用到的相关插件。关于Maven依赖的更多情况,将在后面的例子中逐步加以介绍。在例2-1的基础上,就可以进行基于Spring Boot的Web项目开发了。
【例2-1】 pom.xml文件代码示例。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bookcode</groupId>
<artifactId>springboot-helloworlds</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-helloworlds</name>
<description>Book Code for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting. outputEncoding>
<java.version>1.8</java.version>
<!--上面加粗内容和图2-6中设置的项目元数据对应-->
</properties>
<dependencies>
<!--下面加粗内容和图2-7中选择的Web依赖对应-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
温馨提示:请使用员工书屋的读者帐号和密码进行登录