【框架】SSM整合

SSM整合基础

整体知识架构

  • SSM整合
  • 表现层数据封装
  • 异常处理器
  • 项目异常处理方案
  • 案例:SSM整合标准开发

SSM整合

SSM整合流程

  1. 创建工程
  2. SSM整合
    • Spring
      • SpringConfig
    • MyBatis
      • MyBatisConfig
      • JdbcConfig
      • jdbc.properties
    • SpringMVC
      • ServletConfig
      • SpringMvcConfig
  3. 功能模块
    • 表与实现类
    • dao(接口 + 自动代理)
    • service(接口 + 实现类)
      • 业务层接口测试(整合JUnit)
    • controller
      • 表现层接口测试(PostMan)
  4. 事务
    • 开启注解 是事务驱动
    • 配置事务管理器
    • 添加事务

Spring整合MyBatis

  • 配置
    • SpringConfig
    • JDBCConfig、jdbc.properties
    • MyBatisConfig
  • 模型
    • Book
  • 数据层标准开发
    • BookDao
  • 业务层标准开发
    • BookService
    • BookServiceImpl
  • 测试接口
    • BookServiceTest
  • 事务处理
    image

Spring整合SpringMVC

  • web配置类
    image
  • SpringMVC配置类
    image
  • 基于RESTful的Controller开发
    image

写好的代码放在gitee了
https://gitee.com/cvmohen/learning-notes---source-code.git

表现层数据封装(※前后端协议 根据项目组约定进行)

  • 前端接收数据格式——封装操作结构到code属性中
  • 前端接收数据格式——封装特殊消息到message(msg)属性中
    image
    • 如果code最后一位是0 则操作失败不取数据(data),提示用户信息(msg对应内容)

异常处理器

异常种类

出现异常现象的常见位置与常见诱因如下:
image

  1. 各个层级出现异常,异常处理代码书写在哪一层—
    • 所有的异常均抛出到表现层进行处理
  2. 表现层处理异常,每个方法中单独书写,代码量巨大且意义不强
    • AOP思想

异常处理器

  • 集中的、统一的处理项目中出现的异常
    image

项目异常分类

  • 业务异常
    • 规范的用户行为产生的异常
    • 不规范的用户行为操作产生的异常
  • 系统异常
    • 项目运行过程中可预计且无法避免的异常
  • 其他异常
    • 编程人员未预期到的异常

项目异常处理方案

  • 业务异常
    • 发送对应消息传递给用户,提醒规范操作
  • 系统异常
    • 发送固定消息传递给用户,安抚用户
    • 发送特定消息给运维人员,提醒维护
    • 记录日志
  • 其他异常
    • 发送固定消息传递给用户,安抚用户
    • 发送特定消息给编程人员,提醒维护(纳入预期范围内)
    • 记录日志

项目异常处理步骤

  1. 自定义项目系统级异常 SystemException 继承RuntimeException
  2. 自定义项目业务级异常 BusinessException 继承RuntimeException
  3. 自定义异常编码(持续补充) Code类中加入
  4. 触发自定义异常 if()
  5. 拦截并处理异常(ProjectExceptionAdvice)
    • 业务异常:直接处理,返回用户消息
    • 系统异常、其他异常:记录日志、给开发人员、运维人员发送消息
  6. 异常处理器效果对比
    image

拦截器

拦截器简介

image
image

拦截器和过滤器的区别

image

入门案例

  1. image
  2. image
  3. image

简化写法:SpringMvcConfig类直接实现WebMvcConfigurer接口 亦可以实现步骤2、3,减少了扫描的过程
image

执行流程

image
image

拦截器参数

可以从拦截器中,获取一些响应信息
image
image

拦截器链配置

拦截器链:多个拦截器

多个拦截器执行顺序

image

  1. 只要有前置return false 则所有post都不会执行
  2. 前置进入是1→2→3,则出正好相反3→2→1
    image
posted @ 2022-10-12 23:22  沫漓fighting  阅读(30)  评论(0)    收藏  举报