周嘉雯, 胡玉欣, 周文華, 張之江
(上海大學(xué) 通信與信息工程學(xué)院, 上海 200072)
基于SSM框架的活動(dòng)審批Web系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
周嘉雯, 胡玉欣, 周文華, 張之江
(上海大學(xué) 通信與信息工程學(xué)院, 上海 200072)
為了解決傳統(tǒng)活動(dòng)審批流程的地域以及時(shí)間的局限性,降低活動(dòng)審批的復(fù)雜度,提高管理效率,提出了集活動(dòng)創(chuàng)建、審核、發(fā)布于一體的Web系統(tǒng)設(shè)計(jì)。通過對(duì)現(xiàn)今主流框架Spring﹑SpringMVC﹑Mybatis﹑Hibernate的比較研究,使用SSM框架,將表示層、控制層﹑業(yè)務(wù)邏輯層和數(shù)據(jù)持久層分離,以實(shí)現(xiàn)代碼復(fù)用和敏捷式開發(fā),提高系統(tǒng)的靈活性、可靠性﹑復(fù)用性和可維護(hù)性,并針對(duì)性地實(shí)現(xiàn)權(quán)限和活動(dòng)配置,以及安全性處理。
SSM; 活動(dòng)審批系統(tǒng); Web; SpringMVC
活動(dòng)審批發(fā)布是企業(yè)及活動(dòng)社團(tuán)促進(jìn)新成員加入和回饋老成員的一個(gè)重要環(huán)節(jié),隨著互聯(lián)網(wǎng)+的快速的發(fā)展,企業(yè)創(chuàng)新步伐加快、社團(tuán)數(shù)目不斷增多,為保持提高用戶數(shù)量以及競(jìng)爭(zhēng)力,以活動(dòng)促進(jìn)發(fā)展是必需環(huán)節(jié)。但以往活動(dòng)審批相關(guān)制度手續(xù)繁雜、時(shí)間冗長(zhǎng)且無法保障以至不滿足企業(yè)對(duì)信息快速反應(yīng)的需求,與信息社會(huì)的發(fā)展極不適應(yīng),本課題以B/S架構(gòu)為背景,對(duì)當(dāng)前主流技術(shù)和開發(fā)框架進(jìn)行了研究和探討,相較于以前使用的SSH框架,設(shè)計(jì)研發(fā)了基于SSM框架技術(shù)的活動(dòng)審批Web系統(tǒng),實(shí)現(xiàn)了權(quán)限控制,活動(dòng)配置,審批過程處理以及安全性保障。
1.1 系統(tǒng)主要模塊介紹
活動(dòng)審批Web系統(tǒng)主要包括活動(dòng)的登錄,創(chuàng)建、審核、發(fā)布、以及用戶管理五大模塊,其結(jié)構(gòu),如圖1所示。
圖1 系統(tǒng)主要模塊
登錄模塊:用戶登錄時(shí)采用基于角色的身份認(rèn)證技術(shù),根據(jù)角色分配不同的使用權(quán)限,角色用戶包括普通用戶、組長(zhǎng)、經(jīng)理、管理員等,不同角色分配不同權(quán)限,且在登錄時(shí)進(jìn)行Session攔截,使未登錄用戶必須登錄才可進(jìn)入活動(dòng)審批系統(tǒng)。
創(chuàng)建模塊:根據(jù)獎(jiǎng)勵(lì)方式不同,目前把創(chuàng)建類型分為3種:按比例等級(jí)抽獎(jiǎng)、按范圍隨機(jī)抽獎(jiǎng)、按固定額度隨機(jī)抽獎(jiǎng),每個(gè)類型可有有多個(gè)活動(dòng),設(shè)置對(duì)應(yīng)的地區(qū)、活動(dòng)時(shí)間、活動(dòng)標(biāo)題、背景圖片等,并對(duì)針對(duì)于每個(gè)類型的活動(dòng),設(shè)置對(duì)應(yīng)的規(guī)則。
審核模塊:只顯示未審核且未發(fā)布的活動(dòng),并對(duì)其進(jìn)行分權(quán)限審核,只有組長(zhǎng)審核通過后才能經(jīng)理審核,并對(duì)審核結(jié)果進(jìn)行記錄,通過后,在審核列表中不再顯示,并每次審核都會(huì)檢查該活動(dòng)的狀態(tài)是否一致。
發(fā)布模塊:只顯示已審核通過的活動(dòng),用戶具有發(fā)布權(quán)限時(shí)才可以發(fā)布或者駁回活動(dòng)。
用戶管理:此模塊包括角色維護(hù)和用戶維護(hù)兩部分。均通過列表形式展示給管理員。通過角色維護(hù)列表,可以創(chuàng)建角色,為每個(gè)角色分配不同的菜單管理權(quán)限,通過角色管理還可以查看、修改角色的權(quán)限。通過用戶維護(hù)列表,可以查看、修改現(xiàn)有管理員用戶信息,及創(chuàng)建相應(yīng)角色的管理后臺(tái)登錄用戶。
1.2 數(shù)據(jù)庫(kù)的設(shè)計(jì)
設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫(kù)中各表關(guān)系,如圖2所示。
圖2 數(shù)據(jù)庫(kù)表設(shè)計(jì)
圖2中前4張表分別為:USER_INFO(用戶信息表);ROLE_INFO(角色信息表);PERMISSION_INFO(權(quán)限信息表);USER_VISIT_INFO(登陸日志表)。圖中1:1和1:N表示數(shù)據(jù)庫(kù)表之間的1對(duì)1和1對(duì)多關(guān)系。通過這4張表實(shí)現(xiàn)了登錄與權(quán)限的分配與控制。
圖2中后4張表中,ACTIVITY_BASIC_INFO存儲(chǔ)各種活動(dòng)共有的一些基礎(chǔ)信息,另外三張表是根據(jù)創(chuàng)建活動(dòng)的類型設(shè)計(jì)的不同的規(guī)則表。
2.1 框架的研究和比較
隨著Web應(yīng)用的規(guī)模不斷變大﹑復(fù)雜度不斷升級(jí)﹑需求變化不斷更新,對(duì)軟件的復(fù)用性﹑可靠性﹑以及可擴(kuò)展性提出了較高的要求。本課題采用MVC這建議軟件架構(gòu)模式,并成功實(shí)現(xiàn)了部分程序復(fù)用,簡(jiǎn)化了后續(xù)對(duì)程序的修改和擴(kuò)展。基于MVC架構(gòu)模式,本系統(tǒng)采用了SSM框架,即SpringMVC+Spring+Mybatis的框架組合,采用此框架技術(shù)可以提高開發(fā)效率,滿足敏捷式開發(fā)的需求。
2.1.1 Spring3.0與SpringMVC技術(shù)研究
Spring3.0[1-2]其核心可分為IOC容器和AOP兩個(gè)模塊。IOC即依賴反轉(zhuǎn),是利用Java的反射機(jī)制在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建和調(diào)用對(duì)象,即spring可根據(jù)xml配置文件來動(dòng)態(tài)創(chuàng)建對(duì)象并調(diào)用其方法,并且在Spring發(fā)展到3.0后,只需在調(diào)用的文件中使用@Autowired 來聲明所調(diào)用的對(duì)象即可,使開發(fā)更加簡(jiǎn)潔方便。AOP即面向切面編程,主要是利用代理的設(shè)計(jì)模式,Spring通過對(duì)AOP的支持,大量減少開發(fā)的工作量提高了開發(fā)的效率,也增強(qiáng)了程序的可靠性。本系統(tǒng)中Spring的AOP主要用于對(duì)事務(wù)的管理。
Spring MVC是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即Spring框架提供了構(gòu)造Web應(yīng)用程序的全能MVC模塊,可實(shí)現(xiàn)100%零配置,并且分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行制定。其核心架構(gòu),如圖3所示。
2.1.2 Hibernate與Mybatis技術(shù)研究
Hibernate與MyBatis都是數(shù)據(jù)持久層(ORM)框架,ORM機(jī)制實(shí)現(xiàn)了Java開發(fā)環(huán)境中對(duì)象與關(guān)系型數(shù)據(jù)庫(kù)之間的映射,使得SQL語(yǔ)句對(duì)開發(fā)人員來說也是純粹的Java對(duì)象。相對(duì)Hibernate“O/R”而言,Mybatis 是一種“Sql Mapping”的ORM實(shí)現(xiàn)。雖然都是對(duì)象/關(guān)系型數(shù)據(jù)庫(kù)的映射工具,但對(duì)它們進(jìn)行研究對(duì)比,主要有以下不同[3]:
(1) Mybatis是半自動(dòng)持久層框架,需要開發(fā)人員對(duì)SQL腳本有一定編寫基礎(chǔ),需自己編寫對(duì)象與數(shù)據(jù)庫(kù)之間的映射關(guān)系。Hibernate是全自動(dòng)持久層框架,在開發(fā)過程中完全不用編寫SQL代碼;
(2) Hibernate的查詢會(huì)將表中的所有字段查詢出來,這一點(diǎn)會(huì)有性能消耗,而Mybatis的SQL是手動(dòng)編寫的,所以可以按需求指定查詢的字段,對(duì)于要求較高的系統(tǒng)或者比較復(fù)雜的SQL腳本,開發(fā)人員可以通過MyBatis對(duì)SQL語(yǔ)句自由進(jìn)行優(yōu)化,從而提高數(shù)據(jù)的讀寫性能,加快系統(tǒng)的響應(yīng)速度。
(3) 分別構(gòu)建SSM(Mybatis)和SSH(Hibernate)框架,進(jìn)行執(zhí)行效率測(cè)試,如表1所示。
表1 MyBatis與Hibernate執(zhí)行效率測(cè)試數(shù)據(jù)
表1中執(zhí)行時(shí)間為平均每條數(shù)據(jù)的執(zhí)行時(shí)間,insert測(cè)試數(shù)據(jù)為1000條,select,delete, update每次測(cè)試均為隨機(jī)選擇、刪除、更新一條數(shù)據(jù),執(zhí)行次數(shù)為100次。
根據(jù)以上研究及測(cè)試,本系統(tǒng)選用SSM框架而不是選用以前常用的SSH框架,即使用Spring, Spring MVC和MyBatis框架組合,滿足活動(dòng)需求不斷變化的要求和高效的管理。
圖3 Spring MVC核心架構(gòu)
2.2 SSM框架整合
SSM框架是由Spring, Spring MVC和MyBatis 3個(gè)框架集成的。SSM框架自上而下被分為表現(xiàn)層(Jsp頁(yè)面)、控制層(SpringMVC控制)、業(yè)務(wù)邏輯層(Spring IOC/AOP實(shí)現(xiàn))和數(shù)據(jù)持久層(Mybatis框架)4層,如圖4[4]所示。
圖4 SSM框架整合
SSM框架實(shí)現(xiàn)了J2EE層結(jié)構(gòu)設(shè)計(jì)的技術(shù)要求,使每一層的功能和職責(zé)定義非常清晰,通過接口在各層之間實(shí)現(xiàn)通信,大大提高系統(tǒng)的開發(fā)效率,增強(qiáng)系統(tǒng)的穩(wěn)定性,提高系統(tǒng)的可維護(hù)性和可拓展性。
3.1 框架的組合實(shí)現(xiàn)
通過Spring-mvc.xml,Spring-mybatis.xml以及Web.xml這3個(gè)配置文件搭建活動(dòng)審批系統(tǒng)。
Spring-mvc.xml文件是springmvc的一些相關(guān)配置配置 ,其中
Spring-mybatis.xml文件通過
Web.xml文件中通過context-param配置了spring的上下文位置,并通過listener配置通知容器加載spring配置文件,同時(shí)需配置一個(gè)前端控制器Spring MVC核心控制器(Spring MVC 核心控制器)。
3.2 功能的實(shí)現(xiàn)
3.2.1 管理員及權(quán)限模塊
系統(tǒng)建立初期,只有超級(jí)管理員一個(gè)角色和用戶,超級(jí)管理員可以創(chuàng)建其他角色,并為角色分配不同的權(quán)限,例如:創(chuàng)建組長(zhǎng)﹑經(jīng)理﹑組員等角色,賦予他們創(chuàng)建﹑審核﹑發(fā)布權(quán)限。也可創(chuàng)建活動(dòng)審批系統(tǒng)的后臺(tái)管理員用戶,可進(jìn)行對(duì)角色的維護(hù)和對(duì)活動(dòng)的查看。而普通登錄注冊(cè)用戶只賦予查看已發(fā)布活動(dòng)的權(quán)限,這樣不同角色的管理員擁有不同的權(quán)限,在很大程度上保證了Web系統(tǒng)的安全性。
3.2.2 活動(dòng)審批模塊
該模塊是系統(tǒng)最核心的模塊,其核心是活動(dòng)審批流程處理。實(shí)現(xiàn)時(shí)采用基于JQuery的JQuery EasyUI插件集合體實(shí)現(xiàn)前端Web頁(yè)面,設(shè)置創(chuàng)建﹑審核,發(fā)布3個(gè)菜單,滿足系統(tǒng)的需求。創(chuàng)建菜單,如圖5所示。
圖5 創(chuàng)建活動(dòng)模塊
點(diǎn)擊創(chuàng)建后,交給Web.xml文件中配置好的前端控制器處理,并加載SpringMVC配置(Spring-mvc.xml),再通過Spring-mvc.xml文件配置好的映射器實(shí)現(xiàn)Interceptor攔截器和適配器根據(jù)接口對(duì)后端控制器進(jìn)行包裝(適配),包裝后即可對(duì)處理器進(jìn)行執(zhí)行,最后連接Mybatis框架實(shí)現(xiàn)對(duì)數(shù)據(jù)的處理。審核和發(fā)布過程與之類似,很好地滿足了高效,敏捷式開發(fā)的需求。
文章結(jié)合活動(dòng)審批系統(tǒng)的特點(diǎn)以及企業(yè)社團(tuán)對(duì)其快速開發(fā)的要求,經(jīng)過一系列的測(cè)試研究,提出采用Spring﹑SpringMVC﹑MyBatis三者整合框架SSM的設(shè)計(jì)思想,設(shè)計(jì)并實(shí)現(xiàn)了活動(dòng)審批Web系統(tǒng)。經(jīng)過單元測(cè)試和系統(tǒng)測(cè)試,證明了系統(tǒng)的可靠性和穩(wěn)定性,系統(tǒng)實(shí)現(xiàn)了預(yù)期的功能,可以輕松地通過手機(jī)電腦隨時(shí)隨地進(jìn)行活動(dòng)審批相關(guān)工作。并且根據(jù)開發(fā)過程與結(jié)果SSM實(shí)現(xiàn)了業(yè)務(wù)邏輯層﹑數(shù)據(jù)持久層與表示層的分離,大大降低了系統(tǒng)開發(fā)的耦合度,有利于提高開發(fā)效率與質(zhì)量,有利于提高系統(tǒng)開發(fā)后的可擴(kuò)展性和可維護(hù)性[5-6]。
[1] Walls C, Breidenbach R. Spring in Action[J]. (中文版), 2007(5).
[2] Chen X Q, Wen-Hui D I, Sun D. Application of Java Web based on SSH and AJAX[J]. Computer Engineering & Design, 2009, 30(10):2590-2589.
[3] 王艷清, 陳紅. 基于SSM框架的智能web系統(tǒng)研發(fā)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2012, 33(12):4751-4757.
[4] 張錦煌, 吳麗娟, 梁舒婷. 基于SSM整合框架開發(fā)的項(xiàng)目管理系統(tǒng)[J]. 電腦知識(shí)與技術(shù), 2015(11):103-105.
[5] 盛艷, 朱革嬌, 張建軍,等. 基于ExtJS輕量級(jí)框架的教學(xué)資源庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2015(4):185-187.
[6] 陳夫真. 基于SSM的某高校教室管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 蘇州:蘇州大學(xué), 2012.
Design and Implementation of Web System for Activity Approval Based on SSM Framework
Zhou Jiawen, Hu Yuxin, Zhou Wenhua, Zhang Zhijiang
(College of Communication and Information Engineering Shanghai University, Shanghai 200072, China)
In order to eliminate the limitations of approval process of traditional activities in region and time, and reduce the complexity of the activity approval, improve the efficiency of management, a design of the Web system integrated creation, auditing and release is proposed. SSM framework is used in the design after the research and comparison of the mainstream framework including Spring, SpringMVC, Mybatis and Hibernate. The system departs the presentation layer, control layer, business logic layer and data persistence layer to realize the reuse and agile development, and improve the reliability, flexibility, reusability and maintainability to achieve the aim of the configuration of permissions and activity, as well as the security processing.
SSM; System for activity approval; Web; SpringMVC
周嘉雯(1993-),男,皖,碩士研究生,研究方向:計(jì)算機(jī)的開發(fā)與應(yīng)用。 胡玉欣(1975-),女,聯(lián)合創(chuàng)始人,首席運(yùn)營(yíng)官,愛豆科技(上海)有限公司,歷任資深保險(xiǎn)行業(yè)信息總監(jiān),具有豐富的保險(xiǎn)信息管理系統(tǒng)架構(gòu)規(guī)劃、系統(tǒng)設(shè)計(jì)、運(yùn)營(yíng)管理經(jīng)驗(yàn)。 周文華(1993-),男,碩士研究生,研究方向:計(jì)算機(jī)的開發(fā)與應(yīng)用。 張之江(1968-),男,教授,博士生導(dǎo)師,中國(guó)計(jì)量測(cè)試學(xué)會(huì)計(jì)量?jī)x器專業(yè)委員會(huì)理事,研究方向:計(jì)算機(jī)視覺,數(shù)字全息,負(fù)折射成像理論,機(jī)器視覺應(yīng)用技術(shù)。
1007-757X(2017)06-0050-03
TP311
A
2017.02.25)