瑞吉项目技术栈

项目开发

静态资源路径映射

  • 用于向springboot指定静态资源路径
  • 如果没有配置springboot会从默认位置寻找静态资源

R类处理响应结果

  • 通用返回结果,服务端返回相应的结果此对象
  • 前端接收该对象(响应码、错误信息、成功数据等json数据)

Dto实体类扩展

  • 扩展实体类的属性,一般用于多表数据操作

登录过滤器

  • 配置过滤器
    • 放行登录页面、登录登出请求等
    • 过滤未登录请求
  • 启动类添加@ServletComponentScan,Filter可以直接通过@WebFilter注解自动注册

自定义业务异常

  • 通过trow关键字抛出自定义异常
  • 设置异常信息

全局异常处理器

  • 捕获controller中出现的异常
  • 捕获抛出的自定义业务异常
  • 将异常信息响应给前端

MP分页插件

  • 配置MP的分页插件
  • 使用分页构造器

对象映射器(MVC消息转换器)

  • 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象
  • MVC消息转换器:设置对象转换器,底层使用Jackson将Java对象转json

自定义元数据对象处理器

  • 公共字段自动填充
  • 执行insert或update语句填充数据库表中的创建时间、创建用户、修改时间、修改用户等字段

ThreadLocal类

  • 保存和获取当前登录的用户id
  • 作用在同一线程,不同线程相互隔离,线程安全

文件上传下载

  • 上传:接收图片文件,修改图片名,转存到指定文件夹
  • 下载:通过输入流读取文件,通过输出流将文件写回浏览器

事务处理

  • service层方法添加@Transactional 注解
  • 启动类添加@EnableTransactionManagement注解开启对事务的支持

阿里云短信验证码服务

  • 创建阿里云账户,使用阿里云短信服务平台
  • 验证码生成工具类
  • 短信发送工具类

项目优化

Git托管

  • 关联远程仓库,上传代码,共同开发,版本控制等

缓存实现

  • 用作验证码的缓存

  • 使用redis缓存移动端数据,提高响应速度,降低mysql数据压力

数据库读写分离

  • 配置mysql主从复制功能
  • 主库用于执行增、删、改操作
  • 从库用于执行查询操作

nginx反向代理

  • 代理静态资源服务器
  • 接口请求反向代理

swagger生成接口文档

  • 生成后端接口说明文档
  • 可用于测试接口

企业级项目部署

  • 动静分离(后端代码和前端代码分别部署)
  • 读写分离(主库用于写、从库用于读)
  • 缓存实现
  • 反向代理