SSM整合基础
整体知识架构
- SSM整合
- 表现层数据封装
- 异常处理器
- 项目异常处理方案
- 案例:SSM整合标准开发
SSM整合
SSM整合流程
- 创建工程
- SSM整合
- Spring
- SpringConfig
- MyBatis
- MyBatisConfig
- JdbcConfig
- jdbc.properties
- SpringMVC
- ServletConfig
- SpringMvcConfig
- Spring
- 功能模块
- 表与实现类
- dao(接口 + 自动代理)
- service(接口 + 实现类)
- 业务层接口测试(整合JUnit)
- controller
- 表现层接口测试(PostMan)
- 事务
- 开启注解 是事务驱动
- 配置事务管理器
- 添加事务
Spring整合MyBatis
- 配置
- SpringConfig
- JDBCConfig、jdbc.properties
- MyBatisConfig
- 模型
- Book
- 数据层标准开发
- BookDao
- 业务层标准开发
- BookService
- BookServiceImpl
- 测试接口
- BookServiceTest
- 事务处理
Spring整合SpringMVC
- web配置类
- SpringMVC配置类
- 基于RESTful的Controller开发
写好的代码放在gitee了
https://gitee.com/cvmohen/learning-notes---source-code.git
表现层数据封装(※前后端协议 根据项目组约定进行)
- 前端接收数据格式——封装操作结构到code属性中
- 前端接收数据格式——封装特殊消息到message(msg)属性中
- 如果code最后一位是0 则操作失败不取数据(data),提示用户信息(msg对应内容)
异常处理器
异常种类
出现异常现象的常见位置与常见诱因如下:
- 各个层级出现异常,异常处理代码书写在哪一层—
- 所有的异常均抛出到表现层进行处理
- 表现层处理异常,每个方法中单独书写,代码量巨大且意义不强
- AOP思想
异常处理器
- 集中的、统一的处理项目中出现的异常
项目异常分类
- 业务异常
- 规范的用户行为产生的异常
- 不规范的用户行为操作产生的异常
- 系统异常
- 项目运行过程中可预计且无法避免的异常
- 其他异常
- 编程人员未预期到的异常
项目异常处理方案
- 业务异常
- 发送对应消息传递给用户,提醒规范操作
- 系统异常
- 发送固定消息传递给用户,安抚用户
- 发送特定消息给运维人员,提醒维护
- 记录日志
- 其他异常
- 发送固定消息传递给用户,安抚用户
- 发送特定消息给编程人员,提醒维护(纳入预期范围内)
- 记录日志
项目异常处理步骤
- 自定义项目系统级异常 SystemException 继承RuntimeException
- 自定义项目业务级异常 BusinessException 继承RuntimeException
- 自定义异常编码(持续补充) Code类中加入
- 触发自定义异常 if(){throw new BusinessException( , , );}
- 拦截并处理异常(ProjectExceptionAdvice)
- 业务异常:直接处理,返回用户消息
- 系统异常、其他异常:记录日志、给开发人员、运维人员发送消息
- 异常处理器效果对比
拦截器
拦截器简介
拦截器和过滤器的区别
入门案例
简化写法:SpringMvcConfig类直接实现WebMvcConfigurer接口 亦可以实现步骤2、3,减少了扫描的过程
执行流程
拦截器参数
可以从拦截器中,获取一些响应信息
拦截器链配置
拦截器链:多个拦截器
多个拦截器执行顺序
- 只要有前置return false 则所有post都不会执行
- 前置进入是1→2→3,则出正好相反3→2→1