的后台语言皆是Java,足以证明Java对于开发人员的吸引力。更为重要的是,时至今日Java仍然持续不断的发展,JDK1.8在2014年发布,而JDK1.9也将在今年或者明年发布。【1】
本系统所使用的前端框架BootStrap,在当下也是最为流行的前端框架之一。在2015年,BootStrap团队发布了Bootstrap 4 alpha版。该版本有以下变化。
? 从 Less 迁移到 Sass ? 改进网格系统 ? 缺省弹性框支持
? Dropped wells, thumbnails, and panels for cards ? 合并所有 HTML resets 到一个新的模块中:Reboot ? 全新自定义选项 ? 不再支持 IE8
? 重写所有的 JavaScript 插件
? 改进工具提示和 popovers 的自动定位 ? 改进文档 ? 其他大量改进
本系统所使用的框架以及技术皆是在当前最为流行且最为成熟的。而且他们还在不断的更新,不断的发展之中。
1.3课题目的与方向
本文旨在设计并开发一个人员管理与物资管理的系统,为学生会秘书处的部委提供便利的同时,间接的为广州大学的4万多名学生服务。需要说明的是,根据秘书处的需求,我们并不需要设计一个非常高并发的系统,使用本系统的人员大概在30个,所以我们只为设计一个操作简单,界面简洁,能切实地完成好部委们需求的系统。
6
2. 相关原理和技术
2.1 开发环境
本系统的开发环境如下: 开发平台:Windows 7 、Eclipse 开发语言:Java 关系数据库:Mysql 服务器:tomcat6.0
框架:Mybatis、Spring、Servlet、Jsp、Bootstrap、Jquery
2.2 开发工具
2.2.1 Eclipse
此工具是一个基于Java的开源平台。实质上它是一个框架和一组服务,靠插件组件构建开发环境。而本系统是用过Java开发插件(JDK)在Eclipse上进行开发工作。而Eclipse一个很大的优点是它可以是任何语言的开发平台,我们只需要安装某一种语言的插件,那么即可在Eclipse上开发这种语言,这种设计观念在一定程度上类似Java语言的设计思想:只要安装了适应系统的JDK插件,那边编译过的.class文件可以在任意系统上运行。使用Eclipse,让我们更加快速、更加便捷的进行开发工作,大大提高了工作效率。 2.2.2 Mysql
MySQL 是目前比较常用的关系型数据库管理系统,同时它也是一种关联数据库管理系统。这种系统会将数据保存在不同的表中,而不是将全部数据放在一个大仓库内,这样就能大大的提高效率与灵活性。
Mysql分为社区版与商业版,相比于Oracle,它体积小,速度快,开发成本低,且开放源代码。如果不是一些大型网站,Mysql是一个很好的选择,而本系统则符合中小型网站的特点,所以选择了Mysql而不是Oracle。【11】
7
2.3 相关技术与框架
2.3.1 MyBatis
Mybatis的前身是apache的一个开源项目iBatis,在2010年改名为Mybatis。本系统使用的是Mybatis的Sql Maps持久层框架。使用Mybatis,意味着你将几乎不在需要任何JDBC代码和参数的手动设置。只需要在特定的Xml文件中配置,则Mybatis将自动把数据库的数据和Java对象映射起来。而使用Mybatis的SqlMaps也很符合MVC思想。通过Mybatis,开发人员将大大提高发开效率。【7】 Mybatis的架构可以分为3层:
(1)API接口层:提供给外部使用的接口,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用xml所定义的Sql语句(数据处理层)来完成具体的数据处理。
(2)数据处理层:是由开发人员手动配置的负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。这是Mybatis的底层部分,一般开发人员不需要触及这部分代码。 2.3.2 Spring
Spring是一个轻量级的Java开源框架。spring是用来管理你的系统的类的框架,管理它们之间的互相调用和依赖关系,通过接口解藕,可以方便的更换使用多种不同的技术实现来完成你的系统。其核心思想是依赖注入(IOC)和面向切面(AOP)。它是为了解决应用开发的复杂性而衍生的,Spring通过JavaBean可以完成以前只能由EJB完成的事情,并且Spring能与其他许多当前比较流行的优秀框架进行兼容(通过第三方开发的Jar包)。比如说本系统所使用的Mybatis与Spring的兼容,靠的就是mybatis-spring-1.2.1.jar这个jar包。虽然说本系统是Web系统,但并不是说Spring只能适用于Java Web,它同样能适用于Java应用。Spring作为一个”管家型”框架,为MVC框架的整合提供了非常巨大的作用。它使你的代码更加简洁,分层架构更加易于管理。可以说Spring是本系统的最核心的框架。同时Spring还提供事务管理的功能,开发人员只需在配置文件配置,即可实现对事务进行管理。【8】
8
2.3.3 Servlep
Servlet是用Java编写的服务端程序,在MVC的三层架构中属于控制层,只要实现了Servlet接口的JavaBean都可以称为Servlet。Servlet定义了5个方法
void init void service void Destory
String getServletInfo ServletConfig getSevletConfig
容器在每次请求Servlet时就会调用service这个方法。
而我们通常继承的接口都是HttpServlet,这个接口有两个主要的类
doget、doPost分别用来处理从浏览器端发送过来的get请求和post请求。本系统的所有业务逻辑即从这里开始。
总体来说,Servlet的逻辑就是:
服务器通过URL请求Servlet容器,Servlet容器根据URL调用对应的Url调用对应的Servlet,而相对应的Servlet处理完逻辑后将处理后的结果发回给服务端。 2.3.4 Jsp
Jsp全名叫Java Server Pages,本质上是一个Servlet,它是一种动态网页技术标准,更重要的是它完全面向对象,且可以跨平台,但是它需要配合Servlet来使用。它实现了在Html页面上的Java拓展,将业务逻辑和网页设计进行分离,使得开发人员分工更加明确,效率更加高,代码的耦合度低。【3】
静态数据,如HTML。 JSP指令,如include指令。 JSP脚本元素和变量。 JSP动作。 用户自定义标签。
本系统还使用了JSTL标签库。更易于对数据进行操作。 2.3.5 Jquery
Jquery是一个轻量级的最为流行的Js库,兼容各种浏览器。使用Jquery能使得Html页面与逻辑代码分离开来,Html界面的元素只要定义id,那么使用Jquery则可
9
以直接通过Id操作这些元素。同时在本系统中,更重要的是使用Jquery的Ajax提交实现异步的刷新。同时当下许多流行的前端框架包都需要引用Jquery。比如本系统所使用到的Bootstry与My97 DatePicker。利用Jquery的API,我们能实现一些令人惊叹的效果。 2.3.6 Bootstrap
BootStrap是由Twitter退出的基于前端的CSS框架。它是由Twitter的设计师Mark Otto和Jacob Thornton一起开发的。用于开发响应式布局、移动设备优先的 WEB 项目。它由自己现有的独特的风格,且拓展性好。本系统的大部分UI设计都是采用了Bootstrap定义的样式。大大的节省了开发人员的时间。真正实现了利用最少的时间开发出最好的风格的页面的思想。
2.3.7 My97 DatePicker
My97 DatePicker是一个基于Jquery的日历控件,它体积小,功能强大,速度快,兼容面广。只需要引入My97DatePicker包,即可快速的构建出一个小巧精致的日历选择控件。虽然页面并非十分的精美,但是也足够使用了。它更人性化,功能更全面。有强大的日期范围限制功能,支持多语言和自定义皮肤,并且可以自定义事件。还可以跨无限级框架和自动选择显示位置。
2.3.8 MVC设计模式
MVC设计模式是系统设计中最为普遍是是最为流行的一种模式。M即是Model(模型)、V即是View(表现层)、c即是Controller(控制层)。模型作为与数据库交互的部分,表现层则是呈现给用户看得那部分,控制层则是系统的大脑,负责处理所有的逻辑。所以MVC的逻辑是,表现层的请求经过控制层的逻辑运算后,去模型中向数据库拿数据,返回的数据经过逻辑层再返回给表现层。软件工程是一个很注重分工与效率的学科,而MVC设计模式则完美契合了软件工程的思想,它使得负责三层的三种人员的耦合降到最低,大大提高了工作效率。【10】
10