譚善偉+唐軍
摘 要:JeeSite是集多個(gè)優(yōu)秀開源項(xiàng)目,經(jīng)高度整合封裝而成的高效、高性能、強(qiáng)安全性的開源Java EE快速開發(fā)平臺(tái)。JeeSite以Spring Framework為核心容器,Spring MVC為模型視圖控制器,MyBatis為數(shù)據(jù)訪問(wèn)層,Apache Shiro為權(quán)限授權(quán)層,Ehcahe對(duì)常用數(shù)據(jù)進(jìn)行緩存,Activit為工作流引擎。針對(duì)關(guān)鍵技術(shù)結(jié)合核心代碼給予講解,最后實(shí)現(xiàn)了該系統(tǒng)的設(shè)計(jì)工作,能夠查看、添加、修改企業(yè),個(gè)人,工程項(xiàng)目等信息內(nèi)容,并監(jiān)督受理狀態(tài)等。
關(guān)鍵詞:JeeSite;Spring MVC;開源框架;SSI
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2017)02-0-02
0 引 言
隨著中國(guó)的快速發(fā)展,建筑業(yè)已是中國(guó)國(guó)民經(jīng)濟(jì)的主要支柱產(chǎn)業(yè)之一,而工程質(zhì)量是建筑業(yè)發(fā)展的重要因素,直接關(guān)系到人民生命財(cái)產(chǎn)的安危。近年來(lái),每個(gè)省份都越來(lái)越關(guān)注和重視建設(shè)工程質(zhì)量的管理。本文所研究的采用基于MVC模式的SSI技術(shù)架構(gòu)開發(fā)的建筑質(zhì)量監(jiān)督系統(tǒng)對(duì)提高相關(guān)工作人員的效率及工程質(zhì)量保障有重要意義。當(dāng)前系統(tǒng)已經(jīng)開發(fā)完畢,處于試運(yùn)行階段,結(jié)果證明,該技術(shù)架構(gòu)具有很好的擴(kuò)展性、穩(wěn)定性,對(duì)工作人員工作效率的提升有很大幫助。
1 JeeSite設(shè)計(jì)思想
1.1 分層設(shè)計(jì)
分層設(shè)計(jì)(數(shù)據(jù)訪問(wèn)層,業(yè)務(wù)邏輯層,展示層)層次清楚,低耦合,各層必須通過(guò)接口才能接入并進(jìn)行參數(shù)校驗(yàn)(如在展示層不可直接操作數(shù)據(jù)庫(kù)),可保證數(shù)據(jù)操作的安全。
1.2 雙重驗(yàn)證
用戶表單提交雙驗(yàn)證[1]包括服務(wù)器端驗(yàn)證及客戶端驗(yàn)證,防止用戶通過(guò)瀏覽器惡意修改(如不可寫文本域、隱藏變量篡改、上傳非法文件等)而跳過(guò)客戶端驗(yàn)證操作數(shù)據(jù)庫(kù)。
1.3 安全編碼和密碼加密
用戶表單提交所有數(shù)據(jù),在服務(wù)器端進(jìn)行安全編碼,防止用戶提交非法腳本及SQL注入獲取敏感數(shù)據(jù)等,確保數(shù)據(jù)安全。登錄用戶密碼進(jìn)行SHA1散列加密,此加密方法不可逆,以消除密文泄露后的安全隱患。
1.4 訪問(wèn)和數(shù)據(jù)驗(yàn)證
系統(tǒng)對(duì)所有管理端鏈接都進(jìn)行用戶身份權(quán)限驗(yàn)證[2],以防止用戶直接通過(guò)URL進(jìn)入未授權(quán)頁(yè)面。對(duì)指定數(shù)據(jù)集權(quán)限進(jìn)行過(guò)濾,七種數(shù)據(jù)權(quán)限可供選擇(所有權(quán)限,公司及子公司,本公司,部門及子部門,本部門,本人數(shù)據(jù),跨機(jī)構(gòu)數(shù)據(jù))。
2 建筑質(zhì)量監(jiān)督系統(tǒng)設(shè)計(jì)
2.1 建筑質(zhì)量監(jiān)督系統(tǒng)功能設(shè)計(jì)
通過(guò)系統(tǒng)開發(fā)之前詳細(xì)的調(diào)研需求分析后,質(zhì)量監(jiān)督系統(tǒng)分為基礎(chǔ)信息(人員信息管理、企業(yè)信息管理、項(xiàng)目信息管理)和質(zhì)量監(jiān)督(質(zhì)量問(wèn)題處理、驗(yàn)收管理、統(tǒng)計(jì)報(bào)表、質(zhì)量行為監(jiān)管、質(zhì)量問(wèn)題回復(fù)、監(jiān)督受理、質(zhì)量監(jiān)督報(bào)告等)。其系統(tǒng)功能圖如圖1所示。
2.2 建筑質(zhì)量系統(tǒng)架構(gòu)的實(shí)現(xiàn)
建筑質(zhì)量系統(tǒng)采用Java EE三層結(jié)構(gòu),表現(xiàn)層是客戶端組件,主要功能在于顯示數(shù)據(jù);業(yè)務(wù)層的功能主要為業(yè)務(wù)和數(shù)據(jù)處理;數(shù)據(jù)層主要實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互??蛻舳送ㄟ^(guò)組件與業(yè)務(wù)層建立連接,再由中間層與數(shù)據(jù)庫(kù)交互[3]。
實(shí)踐證明,采用Java EE三層結(jié)構(gòu)能有效降低建設(shè)和維護(hù)成本,并適應(yīng)大規(guī)模和復(fù)雜的應(yīng)用需求以及不斷擴(kuò)展的業(yè)務(wù)需求。建筑質(zhì)量系統(tǒng)架構(gòu)如圖2所示。
3 關(guān)鍵技術(shù)和實(shí)現(xiàn)結(jié)果
3.1 Struts在表現(xiàn)層的實(shí)現(xiàn)
Struts是基于模型(Model)、視圖(View)、控制器(Controller)的MVC模式應(yīng)用框架,MVC減弱了業(yè)務(wù)邏輯和數(shù)據(jù)接口之間的耦合,幫助開發(fā)者控制設(shè)計(jì)變更。在Struts框架中,Model代表應(yīng)用的業(yè)務(wù)邏輯;View是應(yīng)用的表示層,由JSP頁(yè)面產(chǎn)生;Controller提供應(yīng)用的處理過(guò)程控制,一般是Action Servlet。通過(guò)這種模式將應(yīng)用邏輯、處理過(guò)程和顯示邏輯分成不同組件,組件之間進(jìn)行交互和重用,組件化模式在大規(guī)模系統(tǒng)開發(fā)和管理方面更具優(yōu)勢(shì)。
在SSI集成架構(gòu)中,Struts2主要為表示層。本系統(tǒng)采用JSP視圖。
3.2 Spring業(yè)務(wù)邏輯層的實(shí)現(xiàn)
Spring是SSI框架中最重要的組成部分,文中描述的幾個(gè)關(guān)鍵技術(shù)點(diǎn)都基于Spring實(shí)現(xiàn)。Spring是為簡(jiǎn)化企業(yè)級(jí)應(yīng)用開發(fā)而創(chuàng)建的,它為企業(yè)級(jí)應(yīng)用提供了一個(gè)輕量級(jí)解決方案,其核心是依賴注入( Dependency Injection,DI) 和面向切面編程( Aspect Orient Programming,AOP),通過(guò)配置文件來(lái)完成業(yè)務(wù)對(duì)象之間的依賴注入[5]。
3.3 iBatis持久層的實(shí)現(xiàn)
iBatis是一個(gè)基于Java的持久化框架。iBatis 是對(duì)象/關(guān)系數(shù)據(jù)庫(kù) (Object/Relational Mapping,ORM)的映射工具,ORM將對(duì)象模型表示的對(duì)象映射到基于SQL的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中。在持久層中封裝了對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的細(xì)節(jié),向業(yè)務(wù)邏輯公開接口,保證建立在數(shù)據(jù)持久層之上的應(yīng)用程序能夠方便訪問(wèn)需要的數(shù)據(jù)源。核心代碼如下:
3.4 部分功能實(shí)現(xiàn)效果
建筑質(zhì)量監(jiān)督系統(tǒng)的主要目的是方便建設(shè)單位、施工單位、勘察單位、設(shè)計(jì)單位、監(jiān)理單位、質(zhì)量檢測(cè)六方單位的辦公,提高工作效率。企業(yè)用自己的賬號(hào)登錄系統(tǒng),進(jìn)入企業(yè)中心頁(yè)面。要對(duì)工程進(jìn)行質(zhì)量監(jiān)督,首先企業(yè)需要登錄系統(tǒng)的[企業(yè)中心]--[監(jiān)督注冊(cè)登記](méi),錄入該標(biāo)段工程的相關(guān)信息。系統(tǒng)界面如圖3所示。
4 結(jié) 語(yǔ)
本文基于多個(gè)優(yōu)秀的開源項(xiàng)目,設(shè)計(jì)出經(jīng)高度整合封裝而成的具有高效、高性能、強(qiáng)安全性的開源Java EE快速開發(fā)平臺(tái)JeeSite,并介紹了建筑質(zhì)量系統(tǒng)的實(shí)現(xiàn)。結(jié)合實(shí)際用戶的體驗(yàn),均反映該系統(tǒng)可大大提高六方單位人員的工作效率。
參考文獻(xiàn)
[1]馮潤(rùn)民.基于 SSH 的高校學(xué)生管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(6):280-282.
[2] William Crawford,Jonathan Kaplan.J2EE Design Pattern[M].OReilly,2003.
[3]羅國(guó)濤.新型框架Struts2.0+Spring2.0+IBatis在MIS系統(tǒng)中的應(yīng)用[J].軟件導(dǎo)刊,2009,8(4):35-37.
[4] Begin C,Goodin B.i BATIS in Action i BATIS實(shí)戰(zhàn)[M].北京:人民郵電出版社,2008.
[5]陳剛.基于SSH的J2EE開發(fā)平臺(tái)研究與應(yīng)用[D].成都:四川師范大學(xué),2007.
[6]孟強(qiáng),單玉祥,李陽(yáng)冬,等.基于短距離無(wú)線通信的交通信息檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2015,5(7):14-15.
[7]田曉娜,趙晴.基于SSI框架的考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2015,5(2):76-77.
[8]唐永瑞,張達(dá)敏.基于SSI的應(yīng)急事務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014(4):151-154.