999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于 Struts+Spring+Hibernate框架的系統設計與實現
——以江蘇省地質資料館網站為例

2010-01-05 02:13:00王文嫻董洋洋
地質學刊 2010年2期
關鍵詞:數據庫

丁 亮,王文嫻,董洋洋,陳 陟,鈕 晨,汪 希

(1.江蘇省國土資源信息中心,江蘇 南京 210029;2.江蘇省有色金屬華東地質礦產勘查開發院,江蘇 南京 210007)

基于 Struts+Spring+Hibernate框架的系統設計與實現
——以江蘇省地質資料館網站為例

丁 亮1,王文嫻1,董洋洋1,陳 陟1,鈕 晨1,汪 希2

(1.江蘇省國土資源信息中心,江蘇 南京 210029;2.江蘇省有色金屬華東地質礦產勘查開發院,江蘇 南京 210007)

介紹了 Struts、Sping和 Hibernate(SSH)3種開源框架的輕量級 J2EE架構,并基于此開發框架設計和實現了江蘇省地質資料館網站。該網站功能齊全、結構清晰,具有良好的交互性、可擴展性和可維護性,表現出穩定的性能,并取得了良好績效。

Struts;Spring;Hibernate; Image magick;地質資料;江蘇

0 引言

江蘇省地質資料館是江蘇省地質資料館藏機構,依法接收、保管匯交的地質資料,為全社會提供地質資料服務。截止 2009年 6月底,館藏地質資料共有5 487檔,1萬多份,計 16萬余件,其中,最早的一份地質資料《江蘇地質考察》為 1868年—1872年德國地質學家李希霍芬在江蘇考察時形成的。根據地質資料信息化建設要求,江蘇從1998年起,就啟動了館藏地質資料掃描數字化工作。截止 2009年 6月底,館內已藏有光盤存儲的“數字化成果地質資料”2 000多檔。江蘇省地質資料館網站始建于 2005年,但隨著館藏電子資料的日益增多、公眾對大容量地質資料網上閱覽需求的日益增強,原有網站功能已不能滿足這些要求。因此,按照“走出封閉、走進開放、步入社會、走向現代化”新思路,為公眾提供一個全新的網上查詢與資料閱覽的平臺,建立一個內容豐富、功能齊全的網上地質資料館勢在必行。

1 SSH軟件技術架構

在傳統 J2EE架構體系中,其業務邏輯層主要是靠業務組件 EJB(Enterprise Java Beans)來實現的,雖然 EJB一度被認為是 J2EE的核心組件,但它是典型的重量級組件,具有部署復雜等缺點。事實上,很多情況下的應用更需要一些輕量級的解決方案。開源框架技術的發展,為企業級應用的解決方案提供了更多的選擇。筆者討論了一種基于 Struts+Spring+Hibernate的輕量級 J2EE架構體系。

SSH軟件技術架構具有以下優點:①3個框架均為開源框架,有豐富的文檔和開發背景。②架構的整體設計采用了MVC模式,把表示層與業務邏輯層進行了很好的分離。③Spring對 Hibernate提供了很好的支持,二者結合可以構建優秀的數據持久層。通過使用這些比較成熟的技術,可以減少重復開發的工作量、縮短開發時間、降低開發成本、增強程序的可維護性、可擴展性和可移植性。Struts+Spring+Hibernate框架如圖 1。

1.1 框架的層結構

1.1.1 表示層 表示層采用 Struts框架,Struts是一個基于MVC模式的Web應用程序的框架。MVC模式分為 3個核心部件:模型、視圖、控制器,它們各自處理自己的任務。視圖是應用程序中用戶界面相關的部分;模型表示業務邏輯;控制器的作用是從客戶端接受請求,并且選擇執行相應的業務邏輯,最終把響應結果送回到客戶端。這種設計模式把應用邏輯、處理過程和顯示邏輯分成不同的組件實現,通過三者之間的分離達到層間的松散耦合,以實現代碼的重用和易于修改,提高了系統的靈活性、復用型和可維護性。

1.1.2 業務邏輯層 業務邏輯層將傳統上放在 U I和持久層的業務的業務代碼抽取在一起,從而盡可能地降低程序代碼之間的耦合度。業務邏輯層采用

Spring框架,Spring是一個以依賴注入 (Inversion of Control,I oC)原則和面向切面編程思想 (Aspect-O-riented Programming,AOP)為基礎的輕量級框架。運用 AOP可以創建“橫切關注點”(Cross Cutting Concerns),在應用時將它們插入代碼中,使得代碼有良好的可重用性。I oC容器允許在需要生成對象的地方創建一個應用上下文,然后將這些對象傳遞給它們的合作對象。它可以很容易替換業務對象,只要用 Java Bean屬性和配置文件加入依賴性,然后就可以很容易地在需要時替換具有類似接口的協作對象。

1.1.3 數據持久層 數據持久層采用目前比較成熟的 Hibernate框架,它為 Java提供對象模型到關系模型的持久化和查詢服務。Hibernate是一個實現對象和關系之間映射 (Object Relation Mapping,ORM)的開源框架。它對 JDBC進行了輕量級的對象封裝,使得 JAVA程序員可以使用面向對象的編程思維來操作關系數據庫。如果在軟件開發中采用面向對象的方式進行設計,而使用的是關系數據庫,就可以選用 Hibernate這種框架來實現對象和關系之間的映射和數據的持久化。Hibernate擁有一種功能非常強大的查詢語言 HQL,這種語言與 SQL相似,而且完全是面向對象的。它查詢的是持久化對象,而不是數據庫的記錄,而且它可以支持多態、繼承、關聯等關系。

1.2 框架的流程

用戶首先通過 Browser發出 Http請求,Http請求會被業務邏輯層中的控制組件 Action Servlet(負責接收 Http請求)接受并將請求交給 Request Processor來處理,Request Processor根據請求的URL從ActionMapping中得到相應的 Action(負責調用模型的方法,更新模型的狀態,并幫助控制應用程序的流程)。此外,Action Form(負責封裝客戶請求信息)對 Jsp頁面進行封裝,如果需要的話還可以對表單中數據進行校驗,如果出錯就將 ActionErrors返回到顯示頁面;校驗通過,則將頁面數據傳遞給 Action。RequestProcessor調用 Action的 Excute方法,該方法調用業務邏輯模塊,由 Spring和 Hibernate在“幕后”共同完成數據庫的交互。進行業務邏輯處理的Java Bean將通過數據持久層和域對象層與數據庫進行交互。Action的 Excute方法執行完畢后將返回 Action Forward對象,并且會被 Action Servlet接受,據此 Action Servlet轉發到 Action Forward指定的源。也就是將選擇一個正確的視圖顯示給用戶。處理過程如圖 2。

圖2 架構流程圖

2 設計實例

江蘇省地質資料館網站建設目的是:介紹地質資料館概況、及時發布地質資料館工作動態、接受公眾咨詢及監督、展示地質資料館館藏內容等。因此,要求建設符合江蘇省地質資料網上閱覽的內容管理系統,提供信息的增、刪、修改功能,實現類似 Word排版、編輯功能,并能通過內容管理系統生成網站網頁。此外,還需建設網上地質資料全文閱覽系統,提供館藏電子資料的上傳、編輯功能,并允許公眾通過網頁訪問相應的館藏資料內容。

江蘇省地質資料館網站基于 Struts,Spring和Hibernate 3種框架的 J2EE架構設計思想進行設計和開發,采用 Tomcat 5.5作為應用服務器,Eclipse 3.2作為開發工具,SQL Server 2000作為后臺數據庫。本文主要描述網站后臺內容管理系統和資料閱覽系統的實現技術,具體如下。

2.1 后臺內容管理系統設計

江蘇省地質資料館網站內容管理系統的功能包括欄目管理、信息編輯、信息審核、信息發布、模板編寫等。系統采用 SSH架構:Struts用于管理網站前臺頁面展現與后臺的交互服務;Spring用于管理所有創建的對象;所有網站數據庫訪問統一通過 Hibernate實現。

內容管理系統開發包層次結構如圖 3所示。

圖3中,nrgl.action包是系統管理類,用于處理系統前臺頁面與后臺之間的交互和功能轉發;nrgl.ajax包采用 ajax技術處理部分業務的無刷新展示;nrgl.config是系統的配置管理類,用于存儲系統中的配置信息;nrgl.dao包是系統的數據庫訪問類,基于 Hibernate實現;nrgl.model包是系統的數據庫對象類,用于描述所有對象的屬性;nrgl.query包是系統的數據庫查詢類,用于實現所有的數據庫邏輯查詢,基于 nrgl.dao和 nrgl.query包實現;nrgl.services是整個系統的業務服務類,用于實現所有業務邏輯;nrgl.util包是架構提供的一些和業務無關的工具類;nrgl.webservice是系統對外提供的服務接口,基于開源的 Axis實現,用于提供內容管理集成 API服務。

下面以江蘇省地質資料館網站內容管理系統中欄目管理為例,通過相關配置文件闡述是如何采用Struts+Spring+Hibernate技術框架實現新增和修改網站欄目的。

2.1.1 Struts技術的實現 Struts在系統中主要用于處理內容管理系統欄目管理的前臺頁面與后臺業務邏輯層之間的關系,以 Struts-config.xml文件為核心,通用的控制組件 Action Servlet承擔 MVC中Controller的角色,Action For m類封裝用戶界面的數據元素,用 Action類實現業務邏輯、動作處理、鏈接轉向。控制器是按 Struts-config.xml文件中的配置來決定業務流的轉向的,Struts通過 XML進行配置,并在 Action類中實現其功能,每個 Action類在其中用一個 <action>元素來配置。以內容管理系統欄目管理為例,其配置文件 Struts_nrgl.xml部分內容如下。

上述配置文件包含了兩個功能,分別是新增欄目和保存欄目到數據庫。前臺頁面在調用相關功能時,只需指定要跳轉的 Action名稱,如果是保存 nrglsave Catalog,Struts將按照配置文件找到指定的Action實現類,即配置文件中的 com.xzds.nrgl.action.Nrg lLm Action,并調用其中的 save Catalog方法,操作成功時,即轉向到指定的/nrgl/ht/builder Catalog.jsp頁面。而 Action實現類的編寫,與普通的 JAVA類相同,只需繼承 Struts的 Base Action即可。

那么,在實際使用中,只需按照新增欄目的功能需求和展現習慣,編寫相應的 JSP頁面 (圖 4),并將頁面參數指定成相應的 NrglLm Model屬性,系統即將按照配置,自動生成相應的 NrglLm Model對象(在 2.1.3中介紹),通過調用 NrglLm Service對象(在 2.1.2中介紹)的 save方法和 NrglLm Action的saveCatalog方法,將新增欄目信息插入到指定的數據庫表中,由此完成新增欄目功能。

圖4 欄目管理頁面

2.1.2 Spring技術的實現 Spring在內容管理系統欄目管理中主要用于對象的創建和管理,通過配置文件 applicationContext-services-nrgl.xml實現,其部分內容如下。

上述配置文件說明:在系統中通過 Spring提供的 XmlBean Factory類的 getBean方法時,只要提供指定的 Bean名稱,如上述配置文件 NrglLm Service,方法即返回一個 com.xzds.nrgl.services.Nrg lLmService對象,并將對象中的參數 dao,初始化為指定的名稱為NrglLm DAO的Bean,而NrglLm DAO又會按照配置返回一個 com.xzds.nrgl.dao.NrglLm DAO對象,依次類推,直到對象被初始化完成。

例如新增欄目“本館概況”時,則由 Struts中相應的 Action類負責調用 Xml Bean Factory,得到 Nrg lLm Service的實例對象,該對象自動加載操作數據庫欄目表所需的 NrglLm DAO對象,此時,只需把包含“本館概況”欄目屬性 (包括欄目名稱、欄目序號、欄目創建時間等)對應的 Model對象,提供給com.xzds.nrgl.services.Nrg lLm Service對象中的save NRGLLM方法,即可保存該欄目信息到數據庫中。Spring在整個系統中起到一個承上啟下的作用,通過配置文件將整個內容管理系統的所有 dao對象進行組織,方便 Struts層進行調用。此外,當需要更換對象或方法時,無須修改代碼,完全可以通過修改配置文件實現松耦合。

2.1.3 Hibernate技術的實現 Hibernate在內容管理系統欄目管理中用于所有對數據庫的操作,其配置參數及加載的對象 XML已在上述 Spring配置文件中給出,以其中的 com/xzds/nrgl/model/NRGLM-odel.xml為例,該映射文件部分內容如下。

以該配置文件中的內容管理欄目對象為例,<class name="NrglLmModel"table="Nrgl_lm"lazy="true">,指定了該對象的名稱為 NrglLmModel,對應的表名為 Nrgl_lm,后續的 property標簽指定了該對象的所有屬性,并與數據庫中的字段名稱一一對應,如上表中 lmName即欄目名稱,表示 Nrg lLmModel中的 lmName屬性對應 Nrgl_lm中的 lm-Name字段,并且該字段類型為字符串,長度為 512個字符。one-to-many標簽指定了當前欄目與子欄目之間的一對多關聯關系,many-to-one標簽指定了當前欄目與父欄目之間存在的多對一關聯關系。NrglLmModel對象是所有操作的基礎,當調用查詢方法時,Hibernate也會按照配置文件自動生成NrglLmModel對象,方便系統操作。

例如在修改欄目“本館概況”屬性、調用 Hibernate操作數據庫時,首先通過調用 Spring中的 Nrg lLmService,生成 com.xzds.nrgl.services.Nrg lLmService對象后,再調用該對象中的 add、del、update等方法,對“本館概況”的名稱、欄目序號、欄目創建時間等欄目屬性進行增、刪、改等數據操作。

2.2 資料閱覽系統設計

資料閱覽系統的建設,是為整個江蘇省地質資料館網站提供電子圖書網上閱覽,其功能包括圖書管理、PDF文件上傳、JPG圖片生成、文檔結構生成、前臺閱覽等。

資料閱覽系統同樣采用 SSH架構,與內容管理系統不同的是,考慮到目前所有的地質資料統一按照 PDF方式存儲,大部分資料都是上千頁、大于10M的電子文件。為了方便網上閱覽,提高訪問速度,采用了 Image magick和 PDFBox技術將 PDF統一轉換為 JPG圖片,并保留文檔目錄結構,方便網上快速瀏覽。

Image magick是一個開源的圖片處理工具,其中提供了 convert工具,可以支持將 PDF轉換成 JPG的功能,但必須通過命令行實現。因此,是通過在JAVA中執行命令行操作來實現的。

包結構中的 com.pdf.PDFParse是最終實現PDF到 JPG轉換的實現類,類中采用了 PDFBox工具讀取 PDF文件的文檔結構,并調用了 Imagemagick的 convert方法實現了 PDF到 JPG的轉換,相關調用方法如下:

①首先,調用 PDFBox的 PDDocument對象,裝載指定路徑的 PDF文件。

③最后,調用下述方法,執行 convert轉換命令,在指定的文件夾將 PDF文件轉換為 JPG圖片,實現網上快速閱覽。

3 結 語

江蘇省地質資料館網站開發采用 Struts技術充分體現了MVC架構,方便了代碼維護;利用 Spring創建和管理對象,增強了項目的可擴展性;Hibernate的引入避免了手工編寫訪問數據持久層的方法;此外,使用 Image magick和 PDFBox技術,提高了大容量電子資料網上訪問速度,方便了公眾瀏覽。該網站功能齊全、結構清晰,具有良好的交互性、可擴展性和可維護性,表現出良好的性能,滿足了公眾對江蘇省地質資料網上閱覽的需求,為江蘇省地質資料館獲得“全國地質資料網絡服務體系建設第一名”起到了重要的技術支撐作用。

[1]孫曉靜,劉麗珍,章雷.基于 Struts+Hibernate+Spring框架的電子政務系統研究[J].計算機工程與設計,2008(8):42-45.

[2]孫衛琴.精通 Struts:基于 MVC的 JavaWeb開發 [M].北京:電子工業出版社,2004.

[3]ROD JOHNSON,JUERGEN HOELLER,ALEF ARENDSEN,等.Spring框架高級編程 [M].蔣培 ,譯.北京 :機械工業出版社,2006.

[4]蔡雪燾.Hibernate開發及整合應用大全[M].北京:清華大學出版社,2006.

[5]李金海,張景元.基于 Struts,Hibernate和 Spring的J2EE架構的研究與實現 [J].山東理工大學學報:自然科學版,2006(6):50.

Struts+Spring+Hibernate frame based system design and realization:Taking website of Geological Records Center of Jiangsu Province as example

D ING L iang1,WANGW en-xian1,DONG Yang-yang1,CHEN Zhi1,NIU Chen1,WANG Xi2

(1.Jiangsu Land and Resources Information Center,Nanjing 210029,China;2.East China Exploration Institute of Geology andMineral Resources ofNonferrousMetals,Jiangsu province,Nanjing 210007,China)

Lightweight J2EE frame of Struts,Spring and Hibernatewas introduced in the text,and based on the frame,the authors developed the frame design and realized the website of Geological Records Center of Jiangsu Province.The website was characteristic of complete functions,clear structure and fine interaction,extension,maintenance and stability.

Struts;Spring;Hibernate; Image magick;Geological records;Jiangsu

N945.15

A

1674-3636(2010)02-0154-08

2009-12-09;編輯:侯鵬飛

丁亮(1979—),男,工程師,碩士研究生,主要從事國土資源信息化工作.

10.3969/j.issn.1674-3636.2010.02.154

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 国产精品高清国产三级囯产AV| 欧美不卡二区| 青青网在线国产| 日韩少妇激情一区二区| 国产高清在线精品一区二区三区 | 91亚洲国产视频| 国产精品亚洲综合久久小说| 狠狠色成人综合首页| 鲁鲁鲁爽爽爽在线视频观看| 成人综合在线观看| 久久中文无码精品| 亚洲免费毛片| 综1合AV在线播放| 国内丰满少妇猛烈精品播| 国产精品亚洲专区一区| 国产波多野结衣中文在线播放 | 色婷婷电影网| 在线国产91| 国产精品亚欧美一区二区| 亚洲精品午夜无码电影网| 国产一区亚洲一区| 欧美A级V片在线观看| 亚洲国产中文精品va在线播放 | 超级碰免费视频91| 麻豆精品在线| 日本人妻一区二区三区不卡影院| 麻豆精品在线| 久久综合激情网| 国产高潮流白浆视频| 午夜日b视频| 四虎影视8848永久精品| 国产成人精品免费av| 欧美国产日韩在线| AV无码无在线观看免费| 2020亚洲精品无码| 91欧美亚洲国产五月天| 国产成人AV男人的天堂| 欧美一区二区三区香蕉视| 国产尤物视频在线| 欧美精品黑人粗大| 全午夜免费一级毛片| 一级毛片无毒不卡直接观看| 毛片在线播放a| 欧美成人午夜视频| 日韩在线视频网站| 91热爆在线| 一级毛片在线播放| 亚洲国产第一区二区香蕉| 在线无码私拍| 国产成人综合亚洲欧美在| 全部无卡免费的毛片在线看| 伊人精品视频免费在线| 粗大猛烈进出高潮视频无码| 亚洲精品中文字幕无乱码| 91在线国内在线播放老师| 国产福利小视频高清在线观看| 国产黄色片在线看| 四虎影视国产精品| 国内熟女少妇一线天| 97精品国产高清久久久久蜜芽| 激情在线网| 国产二级毛片| 国产成人一区二区| 国产在线一二三区| 亚洲va欧美ⅴa国产va影院| 欧美影院久久| 亚洲国产成人精品青青草原| 亚洲成A人V欧美综合| 色婷婷国产精品视频| 国产精品视频久| 免费在线国产一区二区三区精品 | 精品视频免费在线| 高清视频一区| 国产一区自拍视频| www中文字幕在线观看| 国产v精品成人免费视频71pao | 日本在线欧美在线| 狠狠色噜噜狠狠狠狠色综合久| 国产乱人乱偷精品视频a人人澡| 中文字幕欧美日韩| 国产精品一区在线麻豆| 熟女视频91|