简介java
在您第1次接触和学习Spring框架的时候,是否由于其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否以为一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!web
Spring Boot让咱们的Spring应用变的更轻量化。咱们没必要像之前那样繁琐的构建项目、打包应用、部署到Tomcat等应用服务器中来运行咱们的业务服务。经过Spring Boot实现的服务,只须要依靠一个Java类,把它打包成jar,并经过java -jar命令就能够运行起来。这一切相较于传统Spring应用来讲,已经变得很是的轻便、简单。spring
总结一下Spring Boot的主要优势:编程
为全部Spring开发者更快的入门浏览器
开箱即用,提供各类默认配置来简化项目配置服务器
内嵌式容器简化Web项目app
没有冗余代码生成和XML配置的要求框架
快速入门maven
本文咱们将学习如何快速的建立一个Spring Boot应用,而且实现一个简单的Http请求处理。经过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。编程语言
建立基础项目
Spring官方提供了很是方便的工具Spring Initializr来帮助咱们建立Spring Boot应用。
使用Spring Initializr页面建立
第一步:访问Spring Initializr:https://start.spring.io/
如图所示,几个选项说明:
Project:使用什么构建工具,Maven仍是Gradle;本教程将采用大部分Java人员都熟悉的Maven,以方便更多读者入门学习。
Language:使用什么编程语言,Java、Kotlin仍是Groovy;本教程将采用Java为主编写,以方便更多读者入门学习。
Spring Boot:选用的Spring Boot版本;这里将使用当前最新的2.1.3版本。
Project Metadata:项目的元数据;其实就是Maven项目的基本元素,点开More options能够看到更多设置,根据本身组织的状况输入相关数据,好比:
Dependencies:选择要加入的Spring Boot组件;本文将实现一个Http接口,因此能够选择Web组件,只须要输入Web,页面会自动联想显示匹配的可选组件:
点击”+“以后,就以下图所示:
第二步:点击”Generate Project“按钮生成项目;此时浏览器会下载一个与上面Artifact名称同样的压缩包。
第三步:解压项目包,并用编译器以Maven项目导入,以IntelliJ IDEA为例:
菜单中选择:File – New – Project from Existing Sources…
选择解压后的项目文件夹,点击OK
点击:Import project from external model,并选择Maven,点击Next到底为止。
若你的环境有多个版本的JDK,注意到选择Java SDK的时候请选择Java 8(具体根据你在第一步中选择的Java版本为准)
因为咱们后续会有不少样例工程,您也能够像咱们样例仓库那样,用一个基础仓库,每篇文章的样例以模块的方式保存,具体形式可见文末的案例仓库。
使用IntelliJ IDEA建立
若是是使用IntelliJ IDEA来写Java程序的话,那么还能够直接在编译器中建立Spring Boot应用。
第一步:菜单栏中选择:File = New = Project…,咱们能够看到以下图所示的建立功能窗口。
其中Initial Service Url指向的地址就是Spring官方提供的Spring Initializr工具地址,因此这里建立的工程实际上也是基于它的Web工具来实现的。
第二步:点击Next,等待片刻后,咱们能够看到以下图所示的工程信息窗口:
其实内容就跟咱们用Web版的Spring Initializr是如出一辙的,跟以前在页面上同样填写便可。
第三步:继续点击Next,进入选择Spring Boot版本和依赖管理的窗口:
在这里值的咱们关注的是,它不只包含了Spring Boot Starter POMs中的各个依赖,还包含了Spring Cloud的各类依赖。
第四步:点击Next,进入最后关于工程物理存储的一些细节。最后,点击Finish就能完成工程的构建了。
Intellij中的Spring Initializr虽然仍是基于官方Web实现,可是经过工具来进行调用并直接将结果构建到咱们的本地文件系统中,让整个构建流程变得更加顺畅,尚未体验过此功能的Spring Boot/Cloud爱好者们不妨能够尝试一下这种不一样的构建方式。
项目结构解析
经过上面步骤完成了基础项目的建立。如上图所示,Spring Boot的基础结构共三个文件(具体路径根据用户生成项目时填写的Group全部差别):
src/main/java下的程序入口:Chapter11Application
src/main/resources下的配置文件:application.properties
src/test/下的测试入口:Chapter11ApplicationTests
生成的Chapter11Application和Chapter11ApplicationTests类均可以直接运行来启动当前建立的项目,因为目前该项目未配合任何数据访问或Web模块,程序会在加载完Spring以后结束运行。
项目依赖解析
打开pom.xml,一块儿来看看Spring Boot项目的依赖:
如上所示,主要有四个部分:
项目元数据:建立时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:groupId、artifactId、version、name、description等
parent:继承spring-boot-starter-parent的依赖管理,控制版本与打包等内容
dependencies:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口(该依赖中包含了Spring MVC);spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用咱们将在后面的教程中逐步展开。
build:构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就能够把Spring Boot应用打包成JAR来直接运行。
编写一个HTTP接口
建立package命名为com.didispace.web(根据实际状况修改)
建立HelloController类,内容以下:
启动主程序,使用PostMan等工具发起请求:http://localhost:8080/hello,能够看到页面返回:Hello World
编写单元测试用例
打开的src/test/下的测试入口Chapter11ApplicationTests类。下面编写一个简单的单元测试来模拟http请求,具体以下:
使用MockServletContext来构建一个空的WebApplicationContext,这样咱们建立的HelloController就能够在@Before函数中建立并传递到MockMvcBuilders.standaloneSetup()函数中。
注意引入下面内容,让status、content、equalTo函数可用
至此已完成目标,经过Maven构建了一个空白Spring Boot项目,再经过引入web模块实现了一个简单的请求处理。