1、概述
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring框架由于其繁琐的配置,一度被人认为“配置地狱”,各种XML、Annotation配置混合使用,让人眼花缭乱,而且如果出错了也很难找出原因。
通过SpringMVC框架部署和发布web程序,需要和系统外服务器进行关联,操作繁琐不方便。
Spring Boot是由Spring官方推出的一个新框架,对Spring进行了高度封装,是Spring未来的发展方向。使用Spring Boot框架后,可以帮助开发者快速搭建Spring框架,也可以帮助开发者快速启动一个Web服务,无须依赖外部Servlet容器,使编码变得简单,使配置变得简单,使部署变得简单,使监控变得简单。
2、自动创建Spring Boot_HelloWorld
在Idea中new→Module→Spring Initializr中可以自动创建一个Spring Boot(需要联网)。
3、手动创建Spring Boot_HelloWorld
创建Maven项目
SpringBoot配置文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
自定义设置Tomcat服务器
如果想要修改默认的Tomcat服务器端口号,可以通过全局配置文件进行配置,在src/main/resources/目录中增加application.properties(必须叫这个名)文件
Spring Boot会自动读取src/main/resources/路径或类路径下/config路径中的application.properties文件或application.yml文件。
server.servlet.context-path=/
server.port=10010
server.servlet.session.timeout=60
server.tomcat.max-threads=800
server.tomcat.uri-encoding=UTF-8
4、一些注解
@RequestMapping注解:用来映射请求地址
value属性:设置请求地址,可以省略不写
@RequestParam注解:用来映射请求参数
value属性:设置请求参数的参数名
@ResponseBody注解:将处理器方法的返回值直接响应给浏览器
@RestController = @Controller + @ResponseBody
5、集成通用Mapper
添加通用Mapper和MySQL依赖
<!--集成Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!--集成通用Mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<!--MySQL-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
在application.properties文件中添加链接数据库的配置
spring.datasource.username=?
spring.datasource.password=?
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
6、REST风格的URL
REST简介
REST(Representational State Transfer)又被称作表现层状态转换。它涉及到三个重要名词:
资源:简单讲就是服务所能提供的数据,可以是实体数据也可是媒体类型,图片、PDF、文本等
表现层:表现层简单说就是将数据以某种方式展现给用户,或者给客户返回一张图片等等动作称之为表现,通常是已JSON或XML形式展现数据
状态转换:对数据进行一系列的操作,因为资源本身并非不变,随着需求的变化而变化。一个资源可能会随着需求的变化而经历一个资源创建、修改、查询、删除等过程,REST风格正是基于HTTP协议运行的,HTTP协议又被称为无状态协议,所以资源的变化需要在服务端完成,
综上所述:REST风格使用URL定位资源,用HTTP请求(GET,POST,DELETE,PUT)描述操作。
REST的规定
GET请求:获取资源,例如:/emp/1,获取id=1的员工信息
POST请求:添加资源,例如:/emp,添加员工信息
PUT请求:更新资源,例如:/emp/1,更新id=1的员工信息
DELETE请求:删除资源,例如:/emp/1,删除id=1的员工信息
REST注解
@PathVariable注解:用来映射REST风格的URL中的请求参数
value属性:指定占位符的值 value = "/emp/{id}"
转换PUT请求和DELETE请求
PUT请求和DELETE请求需要通过POST请求来转换,发送POST请求需要在form表单中发送,所以需要使用SpringBoot的模板,转换的步骤:
在pom.xml中添加Thymeleaf模块
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
在templates目录下创建index.html页面,添加form表单,请求方式设置为post,表单中设置一个隐藏域,name属性值为_method,value值为put(转换为PUT请求时的值)或delete(转换为DELETE请求时的值)
<body>
<a href="/getEmp/1">获取员工</a>
<form action="/emp/4" method="post">
<input type="hidden" name="_method" value="delete"><br>
<input type="submit" value="删除员工">
</form>
</body>