图4.1.2 系统工程架构图
工程名称 BaseController UserController EntityBeans Mappers Service Servlet Tools 包名空间 说明 src.Controller.ControllerInterface 业务逻辑层接口 src.Controller.LoginController src.EntityBean src.Mappers src.Service src.Servlet Src.Tools 表4.1.3 本系统的工程架构描述表格
业务逻辑层 数据实体类层 数据访问层接口 数据访问层 控制层 工具层 21
通过图4.1.1,图4.1.2,表4.1.3。可以得出我们的系统架构如下:
(1)首先,我们通过ControlServlet接收所有请求信息。通过请求信息的类型,调
用不同的Controller。【4】
ControlServlet是通过Java的反射原理调用对应的Controller。这样的设计是非常必要的。原因如下【2】:
1.这样的设计,能使代码更为简洁更为直观。
2.与前端人员的对接更为便利,前端设计人员只需要知道对应的messageId即可知道相对应的逻辑。
3.方便代码的拓展。日后在需要对代码进行更新,或者需要做更多的业务支持时,只需要在Controller包下对相应的业务逻辑进行更新或者增添新的业务逻辑。
(2)之后流程将进入到UserController包下对应的逻辑Controller。如截图所示:
图4.1.4 本系统的业务逻辑处理类截图
以上的每个Controller都实现了BaseController的接口,实现了两个方法 public HttpServletRequest RequestWrapper(HttpServletRequest request,HttpServletResponse response);
HttpServletResponse
ResponseWrapper(HttpServletResponse
public
response);
22
在每个Controller下,都将根据利用Spring的依赖注入技术注入相应的Service对象。从而Controler能根据实际的需要调用Service里面所定义的服务。 (3)在Service包下的所有类中,也是利用Spring的依赖注入技术注入相应的Mapper对象从而访问数据库。
(4)Mapper包下则是利用了Mabatis框架写的数据库访问层。首先我们需要为数据库的每张表写对应的实体Bean,本系统的实体Bean如下图所示
图4.1.5 本系统实体Bean截图
通过类与类中的属性映射数据库中的表与表类的栏目,这是利用了面向对象的思想处理问题。然后开发人员可以通过编写对应的Mapper,然后通过Mapper编写对应的Mapper.xml则可以实现对数据库的访问。系统中的Mapper和Mapper.xml如下图所示:
图4.1.6 数据库Mapper截图
当从数据库取得对应的数据后,根据需求将数据封装成Json(当前台为AJAX提交时)或者把数据直接返回给前台。
23
4.1.7系统架构包图
4.2系统概要设计
图4.2.7 系统总体结构图
24
物资借用有7个小模块:
(1)物资借用模块。当用户点击物资借用时,将会弹出物资借用表的页面,用户需要填的资料有,借用物资名称,借用物资数量,借用单位,借用学生姓名,借用学生联系方式,借用日期,归还日期,借用登记人姓名,是否预约。然后点击借用,当信息填写正确后并且物资余量充足时,才可借用成功。
(2)根据条件查询物资记录模块。用户在前台天下查询条件(登记人名字,借用日期,归还日期,借用单位,物资名称)查询符合条件的物资记录,若有记录则分页显示出来。若无则显示空。
(3)查询已预约物资记录模块。用户点击“查询已预约物资”可以查看所有的已预约但尚未借出的物资。
(4)查询未归还物资记录模块。用户点击“查询未归还物资”可以查看所有未归还的物资。
(5)归还物资模块。用户可在表格每一条物资记录的后面点击归还物资。 (6)编辑物资模块。用户可在表格每一条物资记录的后面点击编辑物资,对物资的详细情况进行更改,若编辑信息填写正确,则显示编辑成功。
(7)编辑物资总量模块。有部长权限的用户,点击物资右边的编辑按钮,显示编辑物资界面,若编辑后的物资数量合法,则显示编辑成功。
4.3类的设计
25