后端 | SSM框架 | SpringMVC
笔记来源:黑马程序员SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术
一、SpringMVC概述
SpringMVC技术与Servlet技术功能等同,均属于web层开发技术。
SpringMVC是一种基于Java实现MVC模型的轻量级Web框架。
优点:
使用简单,开发便捷(相对于Servlet)。
灵活性强。
入门注解:
@Controller:类注解,SpringMVC控制类定义上方,设定SpringMVC的核心容器bean。
@RequestMapping:方法注解,SpringMVC控制器方法定义上方,设置当前控制器方法请求的访问路径。
@ResponseBody:方法注解,SpringMVC控制器方法定义上方,设置当前控制器方法响应内容为当前返回值,无需解析。
@RequestParam:形参注解,SpringMVC控制器方法形参定义前面,用于接收url地址或表单传参。
@PathVariable:形参注解,SpringMVC控制器方法形参定义前面,绑定路径参数与处理器方法形参间的关系,要求路径参数与形参名一一对应。
@RestController:类注解,基于SpringMVC的RESTful开发控制器类定义上方,设置当前控制器类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能。
@PostMapping、@DeleteMapping、@PutMapping、@GetMapping:方法注解,基于SpringMVC的RESTful开发控制器方法定义上方,设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作,例如@GetMapping对应GET请求。
二、REST风格
1、REST简介
REST(Representational State Transfer),表现形式状态转换
传统风格资源描述形式:
REST风格资源描述形式:
优点:
隐藏资源的访问行为,无法通过地址得知对资源是何种操作。
书写简化。
按照REST风格访问资源时使用行为动作(GET、DELETE、PUT、POST)区分对资源进行了何种操作。
根据REST风格对资源进行访问称为RESTful。
三、SSM整合
1、异常处理器
集中的、统一的处理项目中出现的异常。
@RestControllerAdvice:
类注解,Rest风格开发的控制器增强类定义上方,为Rest风格开发的控制器类做增强。
此注解自带@ResponseBody和@Component注解。
@ExceptionHandler:
方法注解,专用于异常处理的控制器方法上方,设置指定异常的处理方案,功能等同于控制器方法,出现异常后终止原始控制器执行,并转入当前方法执行。
此类方法可以根据处理的异常不同,制作多个方法分别处理对应的异常。
四、拦截器
1、拦截器简介
拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。
作用:
在指定的方法调用前后执行预先设定的代码。
阻止原始方法的执行。
2、拦截器与过滤器的区别
归属不同:Filer属于Servlet技术,Interceptor属于SpringMVC技术。
拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访问增强。
3、拦截器入门案例
声明拦截器的bean,并实现HandlerInterceptor接口。
定义配置类,继承WebMvcConfigurationSupport,实现addInterceptor方法。
添加拦截器并设定拦截器的访问路径,路径可以通过可变参数设置多个。
4、拦截器链
当配置多个拦截器时,形成拦截器链。
拦截器链的运行顺序参照拦截器添加顺序为准。
preHandle:与配置顺序相同,必定运行。
postHandle:与配置顺序相反,可能不运行。
afterCompletion:与配置顺序相反,可能不运行。
当拦截器中出现对原始处理器的拦截,后面的拦截器均终止运行。
当拦截器运行中断,仅运行配置在前面的拦截器的afterCompletion操作。