自学内容网 自学内容网

第19周JavaWeb编程实战-MyBatis实现OA系统 面试题解析

1. 请说明你的项目及使用的技术

面试官您好,这个项目是办公自动化OA系统,我们通过这个项目来对公司内部的一系列流程性的工作进行无纸化的处理。比如公司内部的请假流程,就是通过这个系统逐级进行审批。我在这个系统中主要负责底层框架的搭建,以及实现请假流程功能。本次项目基于MVC模式进行开发,底层数据库采用的是MySQL,数据库交互使用的是MyBatis框架,数据源使用了阿里巴巴的Druid,控制层使用Servlet 3.1,前端表示层的开发基于Vue 3与Element Plus实现的。这个项目的底层数据库设计、框架搭建和请假功能,都是由我一个人独立完成的。

2. 你的项目有哪些亮点?

作为当前项目,咱们的亮点还是不少的。首先第一点,我们这个项目基于MVC模式进行开发,通过MVC的分层设计来保证各层之间有效的解耦。第二点是我们使用了前端技术Vue 3和Element Plus,这是市场上比较新的技术,项目中对于这些技术的使用非常熟练,对于Vue底层的MVVM数据绑定过程也比较了解。第三点是我实现的请假流程模块,针对请假流程专门设计了一个Process Flow任务流来进行处理。这三点是项目中的主要亮点。

3. 请说明你对MVC的理解

MVC是三个英文单词的缩写:View(视图层)、Controller(控制层)、Model(模型层)。作为MVC,它的核心就是分层设计,每一层各司其职。底层的数据持久层通过MyBatis的Mapper完成数据库的增删改查,向上推进是Service业务逻辑层,负责处理业务逻辑并完成业务功能,再往上是Controller控制层,负责接收来自前端的数据,调用不同的业务逻辑实现功能,最终返回处理结果到视图层。控制层与视图层通过Ajax与JSON进行通信,控制层返回JSON数据,前端通过JSON渲染界面。MVC分层设计能够有效解耦,提高代码的可维护性。

4. 请说明RBAC的实现原理

RBAC,基于角色的访问控制,它的核心是系统中的角色,所有功能菜单、系统用户、文档等资源都与角色绑定。通过用户与角色的对照表确定用户的角色,再通过角色找到对应的功能或资源访问权限。通常RBAC涉及五类表:用户表、角色表、系统功能表、文档表和访问控制表。比如用户与角色对照表、角色与功能对照表等,所有的资源操作都是与角色绑定的。这是RBAC基于角色访问控制的核心原理。

5. 请说明项目的工作流程设计

项目中请假流程的工作流程设计主要分为两部分:请假申请表(原始表单数据)和请假工作流程表。工作流程表与表单表主外线关联,请假单创建后,工作流程表会根据业务规则生成每个节点的处理任务。例如,请假时间超过72小时,需要总经理审批,工作流程表就会生成三条数据,分别对应表单提交、部门经理提交和总经理提交的处理节点。每个节点由Operator ID字段指定对应经办人,审批过程是对节点的状态、结果和原因字段进行更新。整个流程的特点是,节点在请假单创建时生成,后续每一步只是对已有节点状态的更新。

6. 项目是如何对敏感数据进行加密的?

在项目中,我们使用了MD5加盐方式对敏感数据进行加密。MD5是一种信息摘要算法,生成一个128位的散列值。为了防止数据被破解,我们对原始数据进行加盐操作,加盐是对原始数据进行一次处理,使其变得不可读,再对其进行MD5加密。即使通过字典破解MD5,获取的原始数据也是无意义的字符串,因此保证了敏感信息的安全。我们使用了MD5 Utils工具类来实现这个加密流程,确保敏感数据不会被轻易破解。


原文地址:https://blog.csdn.net/Sweeping_Robot/article/details/142863509

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!