美文网首页
JAVA后端管理系统(CMS)封装设想

JAVA后端管理系统(CMS)封装设想

作者: XJ2017 | 来源:发表于2020-03-22 17:23 被阅读0次

背景

哎!自创业以来就从分布式应用转玩单体应用,除搭建基础框架外也免不了花点时间写部分业务代码,刚开始还好但随着需求朝令夕改都快疯了!虽然现在使用Vue+SpringBoot+Shiro+Mybatis+MySQL开发效率还行,但发现还是存在不少重复逻辑的代码。

需求

  • 发现重复逻辑
  • 抽象重复逻辑

分析

  • 重复逻辑:接下来咱们一步步拆分CMS系统
    • 模块维度:CMS系统基本由用户模块、权限模块、系统模块与具体业务相关的模块

      1. 网上有不少开源项目自带这块功能,甚至更丰富。如:https://www.stylefeng.cn/,不过我们自研了这块就不深入讨论咯
    • 页面维度:每个模块的实现都可看做是一个个单独的页面组合组成


      1584861368(1).png
    • 操作维度:每个页面的实现又可以看做是多个操作的组合


      1584861588(1).png
    • 抽象重复逻辑:通过对系统的拆分,最终可发现操作为整个系统的最小单元(对用户而言),接下来咱们从技术上对这些最小单元进行抽象

      • 归类。可归为:新增/更新整条记录、删除、查询、审核、支付、冻结、上传、导入、导出等

设计

既然可以将操作可以归类,那咱们可以面向操作类型来编程,并在通用处理前后提供SPI给上层定制逻辑

  • 问题
    • 怎么抽象具体操作类型的方法?比如新增时不同页面新增字段不一样、查询时也不一样
      • 抽象入参。比如新增入参统一使用各个模型的父类,查询的时候传入Map<String, Object>。当然可以都采用Map<String, Object>来接收个字段的值
      • 抽象出参。出参一般已被抽象为处理状态、错误描述、附加信息。不难发现只要将附加信息抽象好其它都OK,针对上述归类,可以看到只有查询需要附加信息,所有可以将附加信息为List<Object>
    • TODO 应该还会存在不少问题,等实现时遇到再记录在此

相关文章

网友评论

      本文标题:JAVA后端管理系统(CMS)封装设想

      本文链接:https://www.haomeiwen.com/subject/vvpuyhtx.html