前面七篇文章将框架的基础功能简单梳理了一下,分为2类。
框架的结构
元件库:主要是定义一些常用的工具类、底层的实体、抽象类等。
框架: 主要是针对基础框架的二次封装,统一的登录验证、事务的处理、基础日志保存、路由权限、数据权限等,以便适用于项目的基本开发要求,统一后台开发人员的规范以及前后端对接的标准。这也是整个框架的核心功能。
框架
一个完整的开发框架,除了前面提到的功能,至少还需要以下几个通用功能。
- 分页
- 日志
- 简单CRUD 持久层的封装,现在用的比较多的是mybatis-plus,可以在此插件的基础上做二次封装,如果有能力,最好自己写,因为大多数的项目使用mybatis-plus会比较重,而且会比较死板,而且基本上都是需要再做一层适合自己公司要求的处理,例如状态删除、修改数据时记录修改人与修改时间等,我搭建的开发框架基础持久层就是自己写的
- 默认数据的处理,创建者,创建时间,修改者,修改时间,特殊数据的加密,解密(性别、手机号、身份证号等,现在法律法规下,保存此类数据需要加密)
- 页面流量控制
- 排程的处理
- 后端统一规范返回数据的格式给前端,并可根据需求指定显示或不显示哪些字段
- 路由权限(后台),大多数项目的路由权限会是前端去控制,但是这种情况并不安全,在实际项目开发中,不同模块的相同功能,后端的路径都是类似的,例如新增、删除、修改等,稍微有点互联网知识的用户,都是可以绕过前端路由权限控制的,如果要保证自己项目的安全性,后端路由控制必须设置。
- 数据权限:一般会设置5类数据权限。分别是 只能查看本组织数据、本组织及其下级组织数据、只能查看本人数据、自定义组织数据、全部数据 。然后根据人员的角色挂钩即可。
10.数据库读写分离
PS:上面的几个模块,
1-6都是比较简单的
7 :主要用于对系统安全要求较高的时候,例如后端获取了人员的信息的对象返回给前端,但前端只需要显示姓名和性别,其余的信息不需要显示时,后端可以不在创建新的java对象时直接返回指定的字段。
8-9 :路由权限和数据权限是比较难的,这2块的搭建可以说是一个系统的工程,需要跟前端、登录、数据结构统一规范才能做好。
10:数据库读写分离需要单独独立出来写个脚手架,这样会更灵活,不是所有系统都需要用到读写分离