- SpringBoot服务端数据-实现添加用户功能
- 修改POM文件添加Web启动器与Thymeleaf坐标。
<!-- springBoot 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
- 在项目中使用Thymeleaf编写一个添加用户的视图。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form th:action="@{/user/add}">
用户姓名: <input type="text" name="username"><br>
用户年龄: <input type="text" name="userage"><br>
<input type="submit" value="添加">
</form>
</body>
</html>
- 创建一个Controller处理添加用户请求。
@RequestMapping("/add")
public String addUser(Users users) {
this.usersService.insertUser(users);
return "ok";
}
- SpringBoot服务端数据-数据校验
- Spring Boot中服务端数据校验技术的特点是什么?
方便,简单
阐述Spring Boot中如何实现服务端数据校验?
th:errors 会获取响应的数据 .有,会将数据取出,没有会报异常
- @NotBlank注解的作用是什么?
非空校验
- @Valid注解的作用是什么?
针对哪一个对象进行校验
- BindingResult的作用是什么?
@Valid 和 BindingResult 是一一对应的,如果有多个@Valid,那么每个@Valid后面跟着的BindingResult就是这个@Valid的验证结果,顺序不能乱
- SpringBoot服务端数据-解决异常
- 在服务端数据校验时会出现什么异常?
- 产生异常的原因是什么?
在刚开始加载页面的时候,由于还没有开始填写数据,就进行跳转页面,所以这时没有数据。th:errors 会获取响应的数据 .有,会将数据取出,没有会报异常
- 如何解决该异常?
方式一(注入对象式)
方式二(@ModelAttribute()注解式)
- @ModelAttribute注解的作用是什么?
@ModelAttribute() 注解的作用相当于为 users 对象修改别名 ,使用后,前端获取方式应该同样改变,
- SpringBoot服务端数据-其他校验规则
- @NotBlank: 注解的作用是什么?
判断字符串是否为null 或者是空串(去掉首尾空格)。
- @NotEmpty: 注解的作用是什么?
判断字符串是否null 或者是空串。
- @Length: 注解的作用是什么?
判断字符的长度(最大或者最小)
- @Min: 注解的作用是什么?
判断数值最小值
- @Max: 注解的作用是什么?
判断数值最大值
- @Email:注解的作用是什么?
判断邮箱是否合法
- SpringBoot异常处理-自定义错误页面
- 在Spring Boot中一共提供了几种处理异常的方式?
五种
- 什么是自定义错误页面方式?
SpringBoot 默认的已经提供了一套处理异常的机制。一旦程序中出现了异常SpringBoot 会向 /error 的url 发送请求。在springBoot 中提供了一个叫BasicExceptionController 来处理 /error 请求,然后跳转到默认显示异常的页面来展示异常信息。
- 自定义错误页面的命名上有何要求?
如果我们需要将所有的异常同一跳转到自定义的错误页面, 需要在 src/main/resources/templates 目录下创建error.html 页面。注意:名称必须叫error
- 自义定错误页面应该放到项目的什么位置?
需要在 src/main/resources/templates 目录
- SpringBoot异常处理-@ExceptionHandler
- @ExceptionHandler注解的作用是什么?
它会捕获注解里面的异常 ,然后通过Controller跳转到相应的异常页面
- 使用@ExceptionHandler注解处理异常的步骤是什么?
添加注解,指定异常
- SpringBoot异常处理-@ControlleAdvice
- @ControllerAdvice注解的作用是什么?
使用@ControllerAdvice定义全局异常
- @ControllerAdvice+@ExceptionHandler注解处理异常有什么特点?
这一种方式是对前两种方式的升华 ,可以在不同的controller类中,都可以使用。但是问题仍是代码量过多 ,可以实现错误页面的映射 ,以及所有对应异常的页面的跳转
- SpringBoot异常处理-SimpleMappingExceptionResolver
- SimpleMappingExceptionResolver的作用是什么?
完成异常的统一处理
- 阐述使用SimpleMappingExceptionResolver处理异常的方式是什么?
在全局异常类中添加一个方法@Bean 完成异常的统一处理
该方法必须要有返回值。返回值类型必须是: SimpleMappingExceptionResolver
- SpringBoot异常处理-自定义HandlerExceptionResolver
- HandlerExceptionResolver接口的作用是什么?
同样配合 @Configuration实现全局异常的页面映射与跳转
- 阐述使用HandlerExceptionResolver接口处理异常的方式是什么?
创建一个异常处理的controller,继承HandlerExceptionResolver
- Spring Boot整合junit单元测试
- @RunWith注解的作用是什么?
让junit 与spring 环境进行整合
- @SpringBootTest注解的作用是什么?
1. 当前类为springBoot 的测试类
2. 加载SpringBoot 启动类。启动 springBoot
- Spring Boot热部署-SpringLoader-方式一
- 使用SpringLoader实现热部署的方式有几种?
两种
- SpringLoader实现热部署有什么缺陷?
就是Java 代码做部署处理。但是对页面无能为力。
这种方式的缺点是Springloader 热部署程序是在系统后台以进程的形式来运行。需要手动关闭该进程
- 如何启动通过Maven插件方式引入SpringLoader实现热部署的服务?
spring-boot:run
- 如何关闭使用SpringLoader热部署的服务?
输入 tasklist ,会显示正在运行的进程以及他们的pid ,找到对应的pid
找到需要结束进程的pid编号,输入taskkill /pid 编号 /f,按回车键,如下图所示:
也可以通过进程的名称来结束进程,输入taskkill /im 进程名称(带上后缀) /f 就可以关闭进程了,
- Spring Boot热部署-SpringLoader-方式二
- 手动添加SpringLoader的jar实现项目的热部署的步骤是什么?
添加springloader 的jar 包
- 启动服务时与基于插件方式添加SpringLoader方式有何区别?
可以通过eclipse直接关闭
- 启动服务时需要添加什么启动参数?
-javaagent:.libspringloaded-1.2.5.RELEASE.jar -noverify
- Spring Boot热部署-Devtools的使用
- Spring Loader与Devtools的区别是什么?
SpringLoader:SpringLoader 在部署项目时使用的是热部署的方式。
DevTools:DevTools 在部署项目时使用的是重新部署的方式
- 使用Devtools实现热部署的步骤是什么?
修改项目的pom 文件添加devtools 的依赖
运行项目即可