郭藝峰,吳文婷
(國家海洋信息中心 天津市 300171)
在網(wǎng)絡(luò)化通信與應(yīng)用普及的現(xiàn)在,海洋人才報名中普遍還使用郵箱、電話等傳統(tǒng)應(yīng)聘方式。面對越來越多的海洋人才報名需求,招聘人員的工作量極大地增加了。本系統(tǒng)以立足于減少工作量,從日常招聘中需要實際處理的工作為出發(fā)點,為應(yīng)聘人員、招聘人員提供一個友好、方便、易用性高的系統(tǒng)。
圖1 系統(tǒng)功能結(jié)構(gòu)圖
系統(tǒng)主要實現(xiàn)用戶信息管理、崗位信息管理、招聘信息管理及統(tǒng)計信息管理4種功能。如圖1所示。
根據(jù)報名招聘實際工作需求,系統(tǒng)分設(shè)了應(yīng)聘人才、海洋企事業(yè)單位招聘人員、系統(tǒng)管理員3種角色。應(yīng)聘人才通過注冊、登陸系統(tǒng)實現(xiàn)報名應(yīng)聘;海洋企事業(yè)單位招聘人員賬號由系統(tǒng)管理員指定配發(fā)后,登陸系統(tǒng)完成招聘工作;系統(tǒng)管理員可對用戶進行刪除、重置密碼等操作。
海洋企事業(yè)單位招聘人員發(fā)布工作需求信息,并對其進行修改、刪除等操作。
招聘信息管理又分為報名信息管理及錄取信息管理2個功能。
*報名信息管理
報名人員通過查看海洋企事業(yè)單位發(fā)布的崗位需求信息后,需填寫完簡歷,上傳一寸照片、身份證復(fù)印件等附件信息方可報名。期間可實時查看該應(yīng)聘崗位已錄取人數(shù)及職位剩余人數(shù)。每人最多能報2個職位。
*錄取信息管理
招聘工作人員通過查看報名人員簡歷等相關(guān)信息,通過篩選進行錄取(接收)操作。同時發(fā)送給相關(guān)報名人員接收(或駁回)信息,反饋給報名人員。
招聘工作人員可通過系統(tǒng)查看并下載該單位發(fā)布職位的錄取人數(shù)和總報名人數(shù)情況,可根據(jù)實際工作需要導(dǎo)出成execl文件、打印報名人員簡歷,以及柱狀圖、餅狀圖等統(tǒng)計圖形。
本系統(tǒng)基于SSH框架設(shè)計實現(xiàn)。集成SSH框架(Spring-Struts-Hibernate) 的系統(tǒng)從職責(zé)上分為4層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模型層。其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負責(zé)MVC(模型—視圖—控制器) 的分離,在Struts框架的模型(model)部分,控制業(yè)務(wù)跳轉(zhuǎn)(action),利用Hibernate框架對持久層提供支持,Spring整體管理struts和hibernate。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)海洋人才招聘工作需求提出一些模型,將這些模型實現(xiàn)為基本的Java對象,然后編寫基本的DAO(Data Access Objects) 接口,并給出Hibernate的DAO實現(xiàn),采用Hibernate架構(gòu)實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最后由Spring注入管理,管理struts和hibernate[1]。
系統(tǒng)的基本業(yè)務(wù)流程是:在表示層中,首先通過JSP頁面實現(xiàn)交互界面,負責(zé)接收請求(Request)和傳送響應(yīng)(Response),然后Struts根據(jù)配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應(yīng)的Action處理。在業(yè)務(wù)層中,管理服務(wù)組件的Spring IoC容器負責(zé)向Action提供業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DAO) 組件完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數(shù)據(jù)庫交互,處理DAO組件請求的數(shù)據(jù),并返回處理結(jié)果。
圖2 SSH框架示意圖
表1 用戶信息表結(jié)構(gòu)
2.2.1 域模型層和數(shù)據(jù)持久層的實現(xiàn)
分析海洋人才招聘實際工作流程,分離系統(tǒng)中的實體,建立pojo(簡單java對象),用以存放數(shù)據(jù)庫底層實現(xiàn)的具體類。通過建立相關(guān)的hbm.xml文件,利用hibernate建立對象到數(shù)據(jù)庫的關(guān)系映射。以用戶對象(user)為例。
User.hbm.xml文件:
采用java 1.5版本后特有的泛型接口,建立通用數(shù)據(jù)持久化操作類(dao),采用hibernate QBC查詢方式,實現(xiàn)對數(shù)據(jù)庫中具體類的增、刪、改、查操作,完成數(shù)據(jù)持久化[2]。
BaseDao實現(xiàn):
2.2.2 業(yè)務(wù)邏輯層的實現(xiàn)
依據(jù)實體對象建立服務(wù)servie,對應(yīng)于前臺用戶發(fā)生的各種操作。例如驗證用戶登錄的服務(wù)實現(xiàn):
UserService用戶服務(wù):
再通過創(chuàng)建對應(yīng)于用戶操作的UserAction,實現(xiàn)前臺用戶登陸時觸發(fā)UserService的用戶登陸驗證。這些對象的獲取,事務(wù)的處理全部交由Spring 來管理[3]。
UserAction登陸實現(xiàn):
建立對應(yīng)的前臺對應(yīng)jsp視圖文件,在struts.xml中UserAction配置返回的視圖,即可實現(xiàn)用戶登陸后的跳轉(zhuǎn)及數(shù)據(jù)傳遞功能。
UserAction在struts中的配置信息:
系統(tǒng)最終完成圖如圖所示:
用戶管理界面:
崗位信息管理界面:
統(tǒng)計信息界面:
至此,系統(tǒng)設(shè)計實現(xiàn)完成。相較于發(fā)郵件、打電話、逐個篩選等傳統(tǒng)招聘方式,該系統(tǒng)很好地解決了海洋人才招聘中應(yīng)聘人員多、招聘工作人員相對少的問題。通過使用該系統(tǒng),可使招聘工作效率極大地提高,同時統(tǒng)計功能可免去招聘人員后續(xù)人工處理的繁復(fù)工作,減少了工作量。
[1]李剛.輕量級Java EE企業(yè)應(yīng)用實戰(zhàn):Struts 2+Spring+Hibernate整合開發(fā)[M].北京:電子工業(yè)出版社,2012.
[2]孫衛(wèi)琴.精通Hibernate:Java對象持久化技術(shù)詳解[M].北京:電子工業(yè)出版社,2010.
[3]Craig Walls Ryan Breidenbach[美].Spring in Action(第二版)中文版[M].北京:人民郵電出版社,2008.