spring框架范例6篇

前言:中文期刊網精心挑選了spring框架范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。

spring框架

spring框架范文1

關鍵詞:java;spring;持久化;移動開發;大數據

中圖分類號:TP311.52

Spring是目前最流行的企業Java應用程序開發框架,全球有百萬計的開發人員使用Spring來創建高性能,易于測試的,可重用的代碼。Spring自2004年1.0版,至今年5月宣布4.0版的第一個里程碑版本完成,在核心框架不斷進化發展,功能基本趨于完善的同時,為了迎接HTML5和移動客戶端、大數據、NoSQL、社交網絡等領域的挑戰,陸續了一系列新的功能組件,本一簡要介紹和使用探討。

1 統一的持久化存儲―― Spring Data

Spring Data組件的目的在于統一和簡化對各類型持久化存儲的訪問,以及對新的數據訪問技術提供支持,如非關系型數據庫,map-reduce框架,以及基于云的數據服務等。Spring Data包含許多子項目,一一對應到具體的數據庫,目前提供了對十余種數據訪問技術的支持,主要有JPA、JDBC Extension、Redis、MongoDB、HBase、Neo4j、 Apache Hadoop、GemFire等。

Spring Data構建了統一的數據訪問層作為數據持久化的頂層抽象,其基本的接口是Repository,派生出CrudRepository,PagingAndSortingRepository等接口,用于聲明領域對象的CRUD (創建、查詢、更新、刪除)操作、排序和分頁方法等通用功能。

數據訪問層操作的傳統方法,需要至少實施一個Repository類,它包含所需的CRUD方法來訪問存儲的實體子集。而Spring Data則做了進一步簡化,讓你擺脫大部分的實現代碼,只需定義一個接口,聲明你的具體業務方法,Spring Data會在運行時間對方法聲明、注釋進行檢查、分析,推導出查詢語句,正確生成實現代碼。下面舉例說明:

public interface CustomerRepository extends Repository {

Customer findByName(Name name);

}

上面的代碼聲明了findByName方法,Spring Data根據方法名自動生成select C from Customer c where c.name = ?1(JPA)查詢語句。如果查詢復雜,無法用方法名表示,則可用注釋說明。

public interface CustomerRepository extends Repository {

@Query("select c from Customer c where c.name = ?1")

Customer findByName(Name name);

}

Spring Data的優勢在于減少代碼的編寫,定義方法的同時定義查詢語句,使文檔變得更清晰,查詢語句和Spring上下文同時編譯組裝,可以減少代碼編寫中的語法錯誤。但由于各類持久存儲差異很大,無法提供通用API,只是提供了統一的編碼模式。加之實時生成代碼,運行速度受影響。

2 移動Web應用開發――Spring Mobile

Spring Mobile是支持移動Web開發的Spring MVC擴展,包括三項功能,一是服務器端的移動設備探測。通過分析一個HTTP請求中的User-Agent頭和其他請求頭來識別手機或平板的設備屬性,如屏幕尺寸,制造商,型號等。獲得當前設備信息的方法有若干種,最簡單的方法是如果有ServletRequest或WebRequest引用,可以用DeviceUtils獲得,代碼如下:

Device currentDevice = DeviceUtils.getCurrentDevice(servletRequest);

二是站點首選項管理,允許用戶設置他要訪問的是“普通”頁面,還是“移動版”頁面。即當前訪問移動頁面的用戶可以切換到普通頁面,以獲得到某些移動頁面沒有的信息。三是站點切換,配置普通版網站和移動版網站使用不同的域名。即可以根據設備與指定的站點首選項將用戶切換至最適合的站點。

Spring Mobile是在服務器端根據設備信息生成不同的頁面返回客戶端,與之相區別的,新興起的響應式Web設計則是由客戶端根據設備環境,自動調整頁面布局和內容,長遠看,響應式Web設計是將來的方向,因為不需要為每種設備做一個特定的網頁版本,可以減少網頁設計的工作量,但在目前響應式Web設計還未成熟,瀏覽器支持受限的情況下,Spring Mobile的方法則更可靠、實用。

3 Android本地開發框架――Spring for Android

Spring for Android是Android平臺下的開發框架,與Spring 框架不同,它的目標是簡化本地Android應用開發。其主要功能一是利用RestTemplate抽象層實現了REST客戶端。RestTemplate與Spring其它模板類相似,RestTemplate的行為可以通過回調方法定義,HttpMessageConverter用來設定http內容的編組方式,它支持多種HTTP內容編組,利用Jackson或Gson實現了JSON編組、利用Simple XML Serializer實現了XML編組、利用Android ROME實現了RSS/Atom編組。下面舉例說明:

String url = "http://localhost/search/web?v=1.0&q={query}";

RestTemplate restTemplate = new RestTemplate();

restTemplate.getMessageConverters().add(new StringHttpMessageConverter());

String result = restTemplate.getForObject(url, String.class, "SpringSource");

功能二是對Spring Social的支持。實現了OAuth客戶端,能夠支持Twitter、Facebook等主要社交站點的登陸。

Spring for Android可以簡化Android 應用程序的開發,但是由于Android采用Intent方式實現應用生命周期管理,使得Spring Framework重要的依賴注入技術使用受限,影響了Spring在Andorid平臺的進一步發展。

4 大數據處理――Spring XD

Spring XD是一個統一的,分布式,可擴展的系統,用于數據導入,實時分析,批量處理和數據導出,該項目的目標是簡化大數據應用的開發。Spring XD建立在Spring Integration和Spring Batch基礎之上,提供了一個輕量級的運行環境,可以容易的通過簡單的DSL進行配置和組裝。

主要功能一是支持各種輸入源的高吞吐量分布式數據導入,如HDFS或Splunk等大數據存儲系統。二是可以在導入數據時實時分析,例如收集度量和計算數值。三是可以通過批處理作業進行工作流管理,實現標準的企業系統(如RDBMS)與大數據系統(Hadoop)之間的結合。四是支持高吞吐量的數據導出,例如從HDFS、RDBMS或NoSQL數據庫導出。

Spring XD用流(Stream)定義數據是如何收集,處理,存儲或轉發的。例如,某個流可以收集syslog數據,過濾再將其存儲在HDFS中??梢杂肈SL定義流,DSL允許你使用UNIX管道和過濾器的語法建立簡單的線性處理流程,定義復雜的流程則需要使用擴展語法。下面舉例說明:

$ curl -d "time | log" http://localhost:8080/streams/test

上面的代碼定義了一個名字為test的流,并將其發送給流服務器。流的內容為“time|log”,“|”符號表示連接數據源和數據接收器,流服務器會在預定目錄中查找time和log的定義來設置流。在這個簡單的例子中,定義time數據源每隔1秒發送當前時間,而log接收器則記錄收到的time信息。刪除流定義使用下面的命令:

$ curl -X DELETE http://localhost:8080/streams/ticktock

Spring XD使得Spring初步具有了大數據處理能力,填補了這方面的空白,但是功能還較弱,需要進一步增強。

雖然近年來,新興的Web開發框架不斷涌現,對Spring構成了威脅,但隨著新的核心框架的,以及越來越多的新組件的開發,憑借優秀的核心功能和強大的擴展能力,Spring在企業級系統開發中的核心地位仍然牢固。

參考文獻:

[1]羅時飛 精通Spring――深入Java EE開發核心技術 電子工業出版社 2008

[2]Craig Walls Ryan Breidenbach著 熊節譯 Spring in Action(第二版)人民郵電出版社 2008

spring框架范文2

關鍵詞:實驗室信息管理系統;MVC模式;Struts框架;Spring框架;O/R映射

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)14-3716-03

The Design and Implement of LIMS System Based on Struts, Spring and Hibernate Software Framework

TANG Ying-mei

(Guangdong Electronic Technology School, Guangzhou, 510615, China)

Abstract: Based on the research of LIMS, LIMS is designed and implemented on Struts and Spring frame in which J2EE and MVC-based web design pattern is adopted. This paper makes use of the Spring framework by analyzing its principle and realization. It also points out that the Spring framework can be suitable for the majority request of general Web application in the function and performance. Due to its trait of "no intrusiveness", the Spring framework can easily integrate Hibernate to replace Entity Bean's O/R mapping solution and excellent Struts framework.In order to achieve the requirements of the various functions.

Key words: LIMS; MVC; Struts; Spring framework;O/R Mapping

1 引言

在現代實驗室中,高度自動化的儀器設備和快速完善的分析方法的大量出現,使實驗室的功能不斷加強,數據量和信息量迅速增大,這些都對現代實驗室的管理和正常運作提出了極高的要求。同時,作為一種信息資源,實驗室的分析數據應該有規范的貯存和再加工能力,這就對現有實驗室的管理提出了更高的要求。傳統上基于人工管理的實驗室管理模式受到了極大的挑戰,而基于網絡平臺的實驗室信息管理系統(LIMS)自然成了首選的方案。

隨著實驗室認證的逐步推廣,WTO的加入,對實驗室的整體運行水平、管理水平,特別是管理工具提出了更高的要求。在當今這樣一個信息時代,如果一個實驗室的管理停留在手工管理和紙袋儲存數據的層次上,這是不可想象的,也必將面臨被淘汰的危險。因此可見,LIMS―實驗室信息管理系統的引入無疑會把實驗室的管理水平提升到信息時代的最高水平。

2 研究現狀

對于各種LIMS的開發一直是熱點,但是大部分是基于 ASP 或 JSP 技術,在實現過程中沒有考慮系統的擴展性、安全性。目前國內還少有利用 Struts、Spring、Hibernate 三種框架技術相結合的系統。該系統針對行業管理系統中考核指標的多變性,構建一種易于擴展的系統結構模型,提供網絡化的LIMS。使用該系統能夠在規范管理的基礎上結合管理實踐,充分滿足實驗室需求;對實驗室工作流程進行科學、規范、系統的管理。本文闡述了基于Struts+Spring+Hibernate框架所開發的LIMS的體系結構、應用程序各層次設計的每一階段以及所采用的關鍵方法和技術。

本文正文分為六部分。 第一部分簡要介紹了LIMS的研究現狀;第二部分概述了的基于Struts、Spring、Hibernate的研究現狀;第三部分闡述了LIMS設計過程中使用的關鍵技術;第四部分介紹LIMS的框架設計;第五部分闡述了LIMS功能需求;第六部分闡述了Spring整合Struts與Hibernate的實現。

3 關鍵技術

3.1 MVC設計模式

目前幾乎所有的Java企業應用程序都采用基于Web的用戶操作界面,因此構建在可重用商業邏輯之上的Web層應用是非常重要的。MVC設計模式把應用程序抽象為Model(模型)、View(視圖)、Controller(控制器)三個功能截然不同的部分[1]。三者既分工又合作地完成用戶提交的每項任務,如圖 1所示。

3.2 MVC模式在J2EE平臺上的實現

J2EE模型提供了一個很好的企業應用框架及解決方法,提供了靈活的技術選擇,但它只是一個應用開發框架,不能解決系統的所有問題;同時,多層企業應用框架在提高了軟件的重用性和分解了問題的復雜性的同時,也使得代碼龐大,層與層之間的控制關系復雜。MVC設計模式以它可以分離數據訪問和數據表現,可以開發一個具有伸縮性的、便于擴展的控制器來維護整個流程的優勢。MVC模式運用于J2EE平臺的具體體系結構如圖2所示[2]。

3.3 Struts框架[3]

Struts是Jakarta工程提供的用于開發Web應用軟件的框架。它的目的是提高運用MVC模式開發Web應用的效率。它將MVC模式所具有的“分離業務邏輯和顯示邏輯”的能力發揮到了極點,很好的幫助Java開發人員開發J2EE Web層。圖 3是MVC模式中模型、視圖、控制器的作用以及它們之間的交互,Struts框架是基于MVC的。

3.4 Spring框架

Spring是一個由多個相對獨立子框架組成的完整的應用框架,它可以在很多應用層面發揮作用,在具體的使用中,開發者可以將其無縫集成起來,成為一個全面的應用框架。如圖4所示。

3.5 Spring對Struts的支持

Spring為了集成Struts,專門提供了org. Spring framework. Web. Struts包,Action Support在集成Spring上下文上起到很重要的作用。[4]

通過在Struts-config.xml中配置如下內容的方式來初始化Spring ApplicationContext,使用到了Struts提供的擴展機制(并不是所有的Web框架都提供了類似的擴展機制)。Spring和Struts使能應用需要借助于ActionSupport,才能夠使StrutsAction訪問到Spring ApplicationContext。開發繼承于ActionSupport的Action,在這些Action中就可以使用到Spring受管JavaBean(借助于Spring ApplicationContext的getBean()方法獲得它們),進而,就可以享受到業務邏輯、安全服務等。開發ActionSupport的子類是非常簡單的事情,它同開發100%Struts Action子類幾乎不存在任何差別。

3.6 Spring對ORM的支持

Hibernate是對象/關系映射的解決方案,簡寫為ORM。所謂ORM,簡單地說就是將Java中的對象與對象關系,對應到關系數據庫中表與表之間的關系。

為使開發者能夠以統一的方式同數據庫訪問技術(比如,JDBC,Hibernate, JDO, Toplink)進行交互,Spring提供了允許開發者可以在不同的數據訪問技術間切換、而且在切換的同時不用考慮異常處理的DAO ( DataAccess Object)抽象。

Spring提供了一套抽象DAO類,供開發者擴展,這有利于以統一的方式操作各種DAO技術,比如JDO, JDBC。這些DAO類提供了設置數據源及相關輔助信息的方法,其中的一些方法同具體的DAO技術相關。通過SpringDAO抽象,能夠將具體的DAO技術的異常,比如HibernateException, SQLException,轉換成DataAccessException為根的異常處理體系中。針對Hibernate的Spring DAO抽象類是Hibernate DaoSupport,開發者需要為它配置Hibernate Session Factory,通過其子類,開發者可以獲得Hibernate Template。當然,也可以手工配置Hibernate Template。

目前Spring框架借助于Spring IoC和Spring AOP對Hibernate進行了最為有效的集成。

4 LIMS的框架設計

本系統采用在J2EE架構下的MVC模式,整個技術框架的組成為:視圖層采用Struts框架進行表單驗證及頁面顯示,業務層采用Spring框架,實現事務管理和宏觀調控,數據持久化層使用Hibernate技術實現對象關系映射和持久化操作?;赟truts+Spring+Hibernate 框架的實驗室信息管理系統的框架圖如圖5所示。

系統使用B/S架構模式,用戶通過Internet/Intarnet從瀏覽器訪問LIMS管理平臺,系統部署在Tomcat或JBoss等應用服務器上,數據保存在數據庫服務器,具體的數據庫產品可以根據用戶的喜好來選擇,在開發階段,使用了數據庫產品Oracle9i數據庫。

4.1 表示層(The Presentation Layer)

1) 管理用戶的請求,做出相應的響應。

2) 提供一個 Controller,委派調用業務邏輯和其它上層處理。

3) 處理異常,拋給 Struts Action。

4) 為顯示提供一個模型。

5) UI 驗證。

4.2 持久層(The Persistence Layer)

1) 查詢對象的相關信息。

2) 存儲,更新,刪除數據庫記錄。

4.3 業務層(The Business Layer)

1) 處理應用程序的業務邏輯和業務校驗。

2) 管理事物。

3) 允許與其它層相互作用的接口。

4) 管理業務層級別的對象的依賴。

5) 在顯示層和持久層之間增加了一個靈活的機制,使得他們不直接的聯系在一起。

6) 通過揭示從顯示層到業務層之間的 Context 來得到 business ser-vices。

7) 管理程序的執行(從業務層到持久層)。

5 LIMS功能需求

用戶管理功能。在實驗室中,不同類型的用戶使用該系統的權限并不相同,可以執行的各種操作也不相同,這種復雜的用戶權限驗證需求可以總結為:用戶資料管理,可控制的資源限制訪問。

實驗室信息管理功能。該部分包括實驗室信息(包括資料、樣品、業務等)、客戶的添加和查詢兩大部分。實驗室信息管理是面向系統管理員和各部門主管,包括了市場營銷中心、業務技術中心、綜合管理部辦公室、檢測中心和計量中心五大部門,這幾個部分包括各自部門數據的新增、刪除、修改和查詢等功能。

一般數據管理功能。該部分功能是面向一般技術人員,技術人員可以在平臺添加、查詢、刪除自己所管轄的功能點技術信息和業務信息,系統管理員能夠這些信息進行綜合管理。

系統維護功能。面向系統管理員,包括了對平臺運行狀態的維護、日志查看、用戶密碼回復等功能。如圖7所示系統用例圖。

6 Spring整合Struts與Hibernate的實現

利用各個框架的整合實現了LIMS系統。通過該系統可以方便平臺管理員、各部門主管及一般用戶的各種操作,如部門主管對外的業務聯系、對內的人員管理、對所屬部門的實驗室信息的管理、決策。平臺管理員通過系統實現系統管理、權限分配、各種信息管理等。不論用戶還是實驗室各種資料、數據和信息都有各自的屬性,它們之間可能是一對一也可能是一對多、多對多的關系。

本系統中的用戶界面層就是利用Struts來實現的,它本身就是結合MVC架構模式在這里負責將用戶數據傳入業務層,以及將業務層處理的結果返回給用戶,此系統屬于較簡單Web應用,采用了OpenSessionInView模式處理LazyLoad問題,這樣可以在用戶視圖中使用get ,set方法來方便地獲取關聯對象。

為了處理龐大的Action和ActionForm問題,在此準備使用DynaActionForm(DynaValidatorForm)和DispatchAction以及動態驗證框架來解決。及使用Tile來解決框架問題。使用自定義標簽處理分頁和身份驗證問題。

而業務層是利用Spring來實現的,Spring框架最得以出名的是與Hibernate的無縫鏈接,Spring對Hibernate提供了90%以上的封裝,使程序開發人員不必去關心Session的建立、關閉、以及事務使程序開發人員能夠專心的關注業務邏輯。為各個模塊分別構建Service層的BusineusService接口方法,同時在用戶界面上加入身份驗證機制以及在頁面訪問上加入分頁方法和業務邏輯方法。

在數據訪問層用Hibernate來實現,有了Spring的封裝以后,要對Hibernate做的就是正確地實現對象關系的映射。由于此層處于系統的最底層,準確無誤的實現對象之間的關聯關系映射將起著至關重要的作用。

對于業務層而言這里需要認真考慮每一個業務邏輯以及相關的所有能用到的持久層對象和業務對象,如果沒有對他們之間的關系進行認真細致的分析和設計就會很容易的產生模塊之間的依賴關系,為了解決這個問題在這里可以通過配置Spring框架中的applications-service.xml來建立一種依賴注入機制。經過Spring框架與Hibernate框架的結合把模塊之間的類的耦合關系大大的降低了,因為Spring是一個服務于所有層面的應用程序框架,它提供了bean的配置基礎,AOP的支持,JDBC的提取框架,抽象事務支持等等。

模塊之間的層次關系變得比較清晰,這樣使得代碼可復用性和可維護性都得到了很大的提高,從而達到了縮短軟件開發周期提高軟件質量的最終目的。同時在以后系統的維護過程中對代碼的調整也會變的容易許多,因此達到了一般軟件開發設計人員對于程序設計的高內聚,低耦合的最佳效果。圖8及圖9中繪出了基于此種框架下系統平臺管理員與一般用戶相應的處理時序圖。圖10給出了次系統實現后的界面圖。

7 結論

本文結合目前主流的基于J2EE平臺和MVC設計模式的Web應用體系,采用Struts和Spring及Hibernate框架設計了一個基于Web的實驗室信息管理系統。用一個多層體系來作為web應用程序的高級體系結構,Spring框架能被用于業務邏輯層管理業務對象,提供聲明性事務管理和資源管理。Hibernate是一個強有力的O/R映射框架,提供集成層的服務。Spring和Hibernate能很好地結合。

通過將Web應用程序劃分成不同的層和面向接口編程,每一層的技術可以采用相應的技術來取代,如表述層技術有Struts、Tapestry等。每一層的數據、規則和邏輯可以獨立更新。應用程序中采用控制轉換(IoC)來整合業務邏輯層和集成層,而使用Service Cotroller的設計模式來整合表述層與業務邏輯層,使系統的開發工作更簡單、容易。這樣的應用系統具備易維護性、兼容性、高效性、安全性和友善性等特點,該系統的建成大大提高了實驗室的管理水平和工作效率,減少了實驗室開支,提高了產品質量,為領導決策提供了可靠的數據,增強了企業的競爭力。

參考文獻:

[1] 孟慶強,宗平.J2EE與三層Web應用開發[J].計算機與現代化,2004,103(3):50-53.

[2] 潘利群,李耿.MVC模式在J2EE中的實現[J].2004,26(5):52-54.

spring框架范文3

>> 基于Spring的Web開發 基于Struts和Hibernate框架的Web應用研究與實現 基于Struts+Spring+Hibernate的在線大學生評價系統的應用研究 基于Struts\Spring\Hibernate架構的設計與實現 基于Spring Security的web應用安全控制研究與實現 基于Flex和Spring的應用開發架構研究 基于Struts+Spring+Hibernate框架的科研管理系統的設計與實現 基于Struts2+Spring+Hibernate框架的網上評教系統的設計與實現 基于Spring+Hibernate的權限管理組件設計與實現 基于Struts\Spring\Hibernate技術飾品商店設計與實現 基于ExtJs、Spring和iBATIS的Web系統應用研究 基于Spring+DWR+EXT框架的web應用設計與實現 基于Struts和Hibernate的網絡商店的研究與開發設計 基于Struts/Spring/Hibernate集成框架的人力資源管理系統設計與實現 基于Struts+Spring+Hibernate框架的LIMS的設計和實現 基于Matlab的Web圖形開發應用研究 基于Struts框架的Java Web應用開發研究 基于JSF+Spring+Hibernate的人事管理系統 基于Spring+Struts+Hibernate注塑模具報價系統的研發 基于Struts+Hibernate+Spring的輕量級J2EE框架 常見問題解答 當前所在位置:.

[4]spring AoP學習――spring設計模式之模式[EB/OL]..

[5]GARY MAK,JOSH LONG.Spring enterprise recipes[M].Apress,2009:161.

[6]如何使用spring的autowire為servlet注入bean[EB/OL].http:///yaerfeng/article/details/7368541.

spring框架范文4

關鍵詞:Struts;Spring;Hibernate;框架;SSH

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)28-0103-04

隨著信息技術和Internet的發展,基于JAVA的Web技術在各行各業得到廣泛應用。在進行軟件開發時,為了降低開發成本和開發周期,也為了使軟件開發人員能夠將更多的精力集中于業務需求的研發減少底層代碼的開發工作,選用良好的開發框架顯得尤為重要?;贘ava的開源架構有很多,通常情況下,選用何種架構跟項目規模有直接關系。對于大型或者超大型的企業級項目,建議采用Java EE的EJB技術。對于需要快速開發的中小型項目,采用輕量級的框架技術更符合實際需要?,F在有許多優秀的開源的Web開發框架,例如,用于進行數據持久化的Hibernate和JFinal、用于進行權限設計的Shiro以及具有豐富標簽庫的Struts2等,在進行Web應用程序開發時,我們可以選用其中某一個架構,也可以將這些架構整合起來使用。目前比較流行的是采用SSH2(Struts2+Spring+Hibernate)組合框架構建JAVA Web應用程序,表示層使用具有豐富taglib標簽庫的Struts2技術,持久層采用Hibernate框架對數據進行持久化操作,業務層采用Spring框架在層與層之間解耦。

1 關鍵技術介紹

1.1 Struts2

Struts最早于2000年5月作為Jakarta項目的組成部分,Struts1框架是在 JSP Model2基礎上實現的MVC(Model-View-Controller)框架,它是世界上第一個的MVC框架。由于Struts1與JSP和Servlet的緊耦合性導致它存在很多缺陷,也制約了其發展,從而呼喚Struts2的出現。

Struts2與Struts1在本質上有很大的區別,它沒有使用Struts1的設計核心,而是基于WebWork進行架構設計,它是第二代基于MVC模型的Web應用框架。Struts2不僅擁有功能強大的表達式語言和豐富的標簽庫,還可以通過攔截器對用戶請求進行處理,從而對業務邏輯控制器和Servlet進行分離,降低程序的耦合性。

1.2 Spring

Spring是為了解決Web應用程序開發復雜性而創建的,極大地簡化了企業級系統的開發過程。它的核心技術包括兩個方面,一是反轉控制(Inverser of Control,IoC),另一個是面向切面編程(Aspect-Oriented Programming,AOP)。Spring是一個輕量級分層架構框架,由7個模塊組成,分別是:Spring Core(核心容器)、Spring Context(應用上下文模塊)、Spring AOP模塊、Spring DAO(JDBC抽象和DAO支持模塊)、Spring ORM(對象/關系映射集成模塊)、Spring Web模塊、Spring Web MVC模塊,這些模塊可以單獨使用,也可以與其他一個或多個模塊組合使用。

Spring中包含了非常豐富的內容,包括表示層和數據層,它提供了許多原來只有EJB才能提供的功能(如聲明式的事務管理等),但Spring又無需運行在EJB容器中。Spring本身就是一個容器,它可以對系統對象的生命周期進行配置和管理。在SSH2組合框架中主要將Spring應用于中間的業務層,使用接口松散耦合的JavaBeans實現的對象模型可以通過XML配置文件進行組合。

1.3 Hibernate

Hibernate是一個開源的對象關系映射(Object-Relation Mapping,ORM)框架,是JAVA類與數據庫表進行映射的工具,映射后持久化類的每個實例對應數據庫表中的一行數據。Hibernate對JDBC進行了輕量級封裝,以前使用JDBC將數據持久化到數據庫的過程是:先得到Connection,再得到Statement,然后調用Statement的execute方法執行sql語句。這樣寫出的程序類似面向過程,而非面向對象,并且程序中嵌套了很多sql腳本,使得程序員將大量精力放在如何編寫SQL語句上?,F在使用Hibernate框架通過面向對象的方式對數據進行持久化,可以讓Hibernate幫我們生成相應的SQL語句,程序員只需要操作對象就可以對數據庫表進行增刪改查操作。

2 SSH2組合框架

在進行軟件開發時使用成熟的框架就相當于讓別人幫你完成了一些基礎的工作,使用Struts2、Spring和Hibernate這3種優秀的輕量級框架組成的SSH2組合框架可以充分發揮各個框架在Web應用不同層面的作用。

2.1 SSH2組合框架詳細架構

SSH2組合框架分為三層:分別是持久層、業務層和表現層。每層具有明確的責任,數據層使用Hibernate對數據庫進行增刪改查操作,業務層使用Spring框架實現松耦合,表現層使用Struts2負責頁面的請求和轉發等。SSH2組合框架示意圖如圖1所示。

持久層:通過Hibernate的ORM將關系型數據庫的數據映射成對象,從而實現以面向對象方式操作數據庫。具體過程是,首先分析模塊所要涉及的表,確定表之間的關系后進行數據庫設計,然后用Hibernate提供的工具將數據表轉化為POJO對象,再用面向對象的方式進一步操作這些對象以達到對數據的持久化控制。

業務層:位于三層架構的中間層,主要由Spring負責業務層處理。利用Spring的IOC容器實現功能模塊的松耦合相連,利用Spring的AOP將業務邏輯從系統服務(如監控和事務處理)中分離出來,從而實現內聚開發。

表現層:表現層采用Struts2框架對用戶請求進行響應。Struts2提供了豐富的Taglib標記庫,極大地提高了開發效率,并且具有頁面導航優勢,通過一個配置文件struts.xml就可以把握整個系統各部分之間的關系,便于后期的維護和管理。

2.2 SSH2框架的優點

基于SSH2的Web應用架構整合了Struts2、Spring和Hibernate這3個輕量級的開源框架,具有如下優點:

1)屬于開源架構,開發者可以更深入了解其內部實現機制和原理。

2)符合典型的三層架構模式,表現層、業務層和數據層架構層次分明,降低了層與層之間的耦合性。

3)采用MVC模式對業務邏輯層、數據層和表現層進行分離,所有業務邏輯都在Service中處理,有利于系統的開發和維護。

4)SSH已經把底層實現封裝好了,軟件開發者不僅可以在此基礎上實現快速,而且可以更專注于業務邏輯的實現。

5)配置靈活,支持國際化,并且具有很高的重用性。

6)擴展性強,通過配置文件的形式實現擴展。

3 采用SSH2組合框架構建Web應用程序

使用SSH2組合框架進行程序開發,需要開發人員在IDE(例如MyEclipse)環境中正確導入并配置好Struts、Spring和Hibernate。搭建SSH2架構的Web應用環境,通常有兩種方式,一種方式是采用自底向上的方式搭建,即先導入Hibernate、再添加Spring支持,然后集成Struts2。另一種方式是采用自上而下的方式搭建,即先加載Struts2,然后添加Spring支持,再集成Hibernate。下面我們著重介紹采用自上而下的方式搭建SSH2開發架構的過程。

3.1 新建工程,并創建數據庫連接

開始一個新的項目, 通常需要先新建工程,另外大多數Web項目都需要用到數據庫,故而新建工程后要創建數據庫連接。首先在MyEclipse開發環境中新建Web Project工程,然后添加數據連接。以創建oracle數據連接為例,過程如下:

1)點擊圖標,選擇“MyEclipse Database Explorer”視圖,MyEclipse開發環境左側窗口變為DB Browser;

2)在左側的DB Browser中,點擊鼠標右鍵,選擇“New”,彈出如圖2所示菜單;

3)在圖2中,填寫數據庫相關信息并添加驅動類庫ojdbc14.jar;

4)點擊圖2中的“Test Driver”,提示數據庫連接成功即可。

3.2 添加Struts2支持

1)添加Struts2的jar包

首先在新建的工程中添加Struts2的jar包struts2-core-2.1.6.jar

2)創建struts.xml文件

在工程的src目錄下創建struts.xml文件,該文件是Struts2的核心配置文件,用于管理和配置Action攔截器和邏輯視圖映射等,在程序運行時該文件會被Struts2框架自動加載。

3)添加核心過濾器

在工程的web.xml文件,添加Struts2的核心過濾器FilterDispatcher,代碼如下:

3.3 添加Spring支持

1)通過IDE環境添加Spring的jar包

在MyEclipse視圖下,點擊IDE環境左側的工程名,然后選擇”MyEclipse””Add Spring Capabilities…”,為新建的工程添加Spring支持,如圖3所示,主要添加Spring 2.5 AOP Librabries、Spring 2.5 Core Librabries、Spring 2.5 Persistence Core Librabries、Spring 2.5 Persistence JDBC Librabries、Spring 2.5 web Librabries這5個包。

點擊圖3中的“Next”按鈕,打開圖4所示窗口添加Spring bean的配置文件applicationContext.xml,該文件必須放置到WebRoot/WEB-INF目錄下,以便于通過web.xml進行加載。

2)配置web.xml文件,添加Spring監聽器

在web.xml文件,添加Spring監聽器的代碼如下:

3.4 添加Hibernate支持

1)通過IDE環境添加Hibernate的jar包

在MyEclipse視圖下,點擊IDE環境左側的工程名,然后選擇 “MyEclipse””Add Hibernate Capabilities…”,為新建的工程添加Hibernate支持,如圖5所示。

2)配置Hibernate

點擊圖5中“Next”按鈕,進入圖6所示的“Hibernate Configuration”頁面,對Hibernate進行初步配置。選中“Spring configuration file(applicationContext.xml)”單選框,意味著我們將會使用Spring中的applicationContext.xml文件對Hibernate Bean進行管理。

點擊圖6中的“Next”按鈕,對Hibernate進行進一步配置,如圖7所示,選中“Exiting Spring Contfiguration file”單選框,文本框中輸入“SessionFactory”。

1)添加數據源

點擊圖7中的“Next”按鈕,彈出圖8所示的添加數據源窗口,指定一個新的Spring數據連接。具體配置如圖8所示,DB Driver處選擇我們前面配置好的數據源oracledriver即可。

點擊圖8中的“Next”按鈕,在彈出的圖9窗口中取消勾選”Create SessionFactory class”選項 ,點擊”Finish”按鈕即完成Hibernate添加。

這時,我們的工程完整的添加了Struts、Spring和Hibernate支持,開發環境搭建完畢,就可以進一步編寫業務需求的實現代碼了。

4 結束語

在進行JAVA Web工程開發時,Web應用框架的選擇非常重要。本文在深入研究和細致分析開源框架Struts2、Spring和Hibernate的基礎上,根據Web應用的分層原則,提出采用SSH2組合框架自上而下構建Web應用程序的方式。使用這種優秀的解耦架構不僅可以提高開發效率,縮短開發周期,節約開發成本,而且對后期不斷的需求變更能夠更好地適應,在多個項目實施過程中,該組合框架也表現出了良好的性能。

參考文獻:

[1] Oh snap! [EB/OL].http:///hibesdocs/reference/zh-cnlhtml.

[2] 孫鑫. Struts2深入詳解[M]. 北京: 電子工業出版社, 2009.

[3] 王福強. Spring揭秘[M]. 北京: 人民郵電出版社, 2009.

spring框架范文5

關鍵詞:輕量級框架;Struts;Spring;Hibernate;大學生評價

中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2011)18-4351-02

Application Research of On-line College Students Evaluation System Based on Struts, Spring and Hibernate

LIANG Bi, ZHOU Ren-ming

(Department of Computer Science, Sichuan University of Arts and Science, Dazhou 635000, China)

Abstract: For the purpose of solving the insteabiligy of current College Students Evaluation System, this paper designed and implemented the system by adopting popular open-source frameworks, namely Struts,Spring and Hibernate. it not only makes up for the disadvantages of traditional Web developing technology, but also achieve the target of systematic layers and high cohesion, low coupling between components with lightweight, cross-platform advantages, improving the maintainability, extensibility and reusability of the System.

Key words: lightweight framework; Struts; Spring; Hibernate; college students evaluation

隨著信息技術的發展以及現代高校管理的需求,開發一套高效而且穩定的大學生評價系統迫在眉睫。本項目開發目的在于摒除以往學校安排大量的人力、物力去調查處理繁瑣的資料統計工作,充分利用網絡資源共享的優勢來有效地評價學生。傳統的C/S模式已經無法滿足現代的需求,隨著各類開源框架的誕生,其良好的開發模式、結構框架搭建、以及開源信息的共享為系統開發帶來了革命性的進展。其中,最具代表性的有Flex、Struts、Spring、Hibernate以及iBATIS等開源框架,它們以其輕量開發等諸多優勢迅速占據了現在市場。本系統就是使用當前主流的SSH(即Struts+Spring+Hibernate)開源框架技術來進行開發。

1 Struts、Spring和Hibernate框架

Struts、Spring和Hibernate是目前多層Web系統開發中主流的開源框架,本文采用這三種開源框架實現了大學生評價系統的三層架構模式。

1.1 Struts框架

Struts框架是一個優秀的基于MVC模式的開源框架,主要包括三個部分:模型(Model)、視圖(View)和控制器(Controller)[1]。它主要采用JSP與Servlet技術實現,把Servlet、JSP、自定義標簽和信息資源整合到一個統一的框架中,通過一系列的Action、ActionForm或者Spring里封裝的各種JavaBean來實現模型,運用標簽庫來生成視圖,使用簡單的配置文件來完成控制。它主要的設計理念是通過控制器將表示邏輯和業務邏輯解耦,以提高系統的可維護性、可擴展性和可重用性。

1.2 Spring框架

Spring是一種應用程序開源框架,其作用貫穿于整個應用程序的各個層面當中,它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情,它的用途不僅限于服務器端的開發,從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架,它提供了很多基礎功能,如事務管理、持久化框架集成等,并將應用邏輯的開發留給開發者[2]。

1.3 Hibernate框架

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫[3]。Hibernate最具革命意義的是它可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration,這5個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。

2 系統設計

2.1 系統功能分析

本大學生評價系統開發的總體目標是使高校的學生評價工作系統化、規范化、自動化,從而達到縮短學生工作處有效評價學生的時間,提高他們的工作效率,節約人力和物力。為了實現該目標,本評價系統將評價人員分為7個角色,分別是學生、班委、教師、班主任、系輔導員、系主任、院領導。當用戶注冊完畢后,就可以登錄該系統選擇被評價的學生,對其各方面進行評價。評價的內容主要包括學生學習情況、獎勵情況、生活情況、業余情況等。當評價完畢后,用戶可以查看該學生的評價成績以及排名情況。其中,評價最終得分采用加權平均算法來計算[4],其結果采用百分制,根據得分多少,將被評價學生分為5個等級和5個好評率,具體如表1所示。

2.2 系統功能設計

根據上述系統功能分析,可以得到整個系統有兩大模塊,即前臺和后臺。前臺主要完成相關角色去評價要被評價的學生以及查看評價的結果,后臺主要完成對用戶角色以及評價信息等的管理,包括的主要功能模塊如圖1所示。

spring框架范文6

目前,很多B/S模式的圖書管理系統是基于傳統的Jsp Model 1模型建立的。隨著用戶需求的變化,要擴充系統功能,改善用戶界面。傳統的Jsp Model 1模型建立的系統形式固定,HTML和Java強耦合在一起,導致頁面設計與邏輯處理無法分離。功能劃分不清,不便于系統的維護和升級。本文結合SSHA技術,設計并開發了一個圖書管理應用系統,該系統可擴充性良好,可以重復利用組件進行其他項目的開發。 

1系統使用技術 

Struts是一個基于MVC體系結構的Web應用程序的框架,具有組件模塊化、靈活性和可重用性等優點,極大地簡化了Web應用程序的開發。它合理地將用戶表示邏輯、業務邏輯和控制邏輯分離,使得開發過程變得簡潔清晰,提高了軟件的可維護性和可重用性。View(視圖)由包含一組可擴展的自定義標簽庫(Tag Lib)JSP來建立,Model(模型)主要由ActiomFormBean來實現,業務邏輯通常由JavaBean或EJB組件來實現,控制器主要由Action Servlet實現.Struts的核心是ActionServlet.ActionServlet的控制參數在配置文件config.xml中。 

2系統的結構和設計 

2.1系統結構 

圖書管理系統包括系統管理、圖書借閱與返還管理、讀者管理和圖書管理4個模塊。系統管理模塊包括對系統參數的維護、讀者權限的設置等;圖書借閱與返還管理則是處理日常業務,包括圖書的借出、歸還及查詢等;讀者管理則是對讀者信息進行維護,包括辦證、掛失等,以及個人信息的建立與查詢;圖書管理是對圖書資料進行維護,包括查詢、修改、增加、刪除及打印報表等。 

2.2系統設計和分析 

2.2.1系統總體架構 

圖書管理系統框架采用Struts、Spring與Hibernate構架進行開發。Struts框架將業務數據、頁面顯示、動作處理進行分離,降低系統的藕合性。在Web頁面采用Struts強大的TagLib標記庫,能靈活動用,大大提高開發效率。Hibernate框架在系統中提供持久層支持,通過MyEclipse提供的Hibernate反轉工程工具,為數據庫中的數據表生成相應的POJO(plain object Java object)類和映射文件,并生成對數據進行增、刪、減、查的方法。這些方法封裝在DAO類中。spring管理系統組件間的依賴關系,系統采用面向接口編程的方式,定義業務層的組件接口,獨立開發各個組件,然后根據依賴關系組裝組件。以讀者管理模塊為例,系統組件的注入關系為圖1所示。圖1系統的注入關系圖 

除此,Spring通過聲明的方式給系統增加事務支持。以借書模塊為例,在業務層增加的事務支持代碼是: 

class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 

read?only="true" /> 

read?only="true" /> 

read?only="true" /> 

expression="execution(* liberary.biz.lendbookbiz.*(..))"/> 

系統開發結構如圖2所示。 

圖2系統開發結構 

2.2.2Spring和Hibernate框架開發持久層 

對于Hibernate的應用主要是應用配置文件即0/R映射配置文件和hibernate.cfg.xml配置文件。通過反轉工具生成的0/R映射配置文件表達出持久類與數據庫表的映射關系。Hibernate將根據這個映射文件來生成各種SQL語句,實現數據的訪間。在Hibernate的hibernate.cfg.xml配置文件中,定義鏈接池、訪問數據庫的URL資源定位地址、數據庫名稱、數據庫方言MySQLDialect、數據庫鏈接驅動程序等Hibernate運行需要的主要屬性信息。 

使用Spring整合Hibernate時不需要hibernate.cfg.xml文件。首先,在applicationContext.xml中配置數據源(dataSource)bean和session工廠(sessionFactory)bean。其次,Spring提供了HibernateTemplate,用于持久層訪問,該模板無需打開Session及關閉Session。它只要獲得SessionFactory的引用,便可以打開Session,并在持久化訪問結束后關閉Session,程序開發只需完成業務邏輯層,DAO層的開發(如對數據庫中數據的增、刪、改、查)則由HibernateTemplate完成。以讀者管理模塊為例,Spring和Hibernate整合后的ApplicationContext配置文件代碼: 

class="org.apache.commons.dbcp.BasicDataSource"> 

value="com.microsoft.sqlserver.jdbc.SQLServerDriver"> 

 

… 

 

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 

 

 

 

 

 

 

org.hibernate.dialect.SQLServerDialect 

 

 

 

 

 

entity/User.hbm.xml 

 

2.2.3spring 和Struts框架對Action的管理 

Struts框架是基于MVC(model view controller)模式的框架。使用Struts框架只需關注相應的ActionBean、ActionFormBean和JSP組件的開發。使用Struts的Taglib標記庫,靈活動用,大大提高JSP組件的開發效率。使用MyEclipse添加Strut支持時會自動在Web.xml文件中配置action Servlet,在Struts?config.xml文件中配置message?resources5。在Struts?config.xml文件的設計視圖中使用向導創建Action和 Action Form 。在用戶管理模塊的用戶注冊子模塊中,Action和Action Form的配置如下: 

 

 

 

 

attribute=" UserForm " 

name=" UserForm " 

parameter="operate" 

path="/reg" 

scope="request" type=" liberary.web.action.UserAction "> 

 

 

 

 

在UserRegAction中使用Biz層提供的接口,判斷用戶注冊是否成功,注冊成功,轉入首頁,否則,轉入錯誤頁面。使用Spring整合Struts時,Struts中的Action由Spring進行創建,利用Spring提供的ContextLoaderPlugIn插件即可做到Spring與Struts的無縫集成。Struts?Config.xml的插件代碼為: 

value="/web?INF/applicationContext.xml" /> 

把Spring配置文件的位置告知插件,并將Action的類別配置為Spring的類。在Spring的配置文件applicationContext.xml中配置Action bean,并通過Spring的依賴注入關系,注入相關的Biz信息,對應的配置信息為: 

將Struts配置文件中Action類別配置為“org.springframework.web.struts.DelegatingActionProxy”,注冊子模塊UserAction的配置為: 

attribute=" UserForm " 

name=" UserForm " 

parameter="operate" 

path="/reg" 

scope="request" 

type="org.springframework.web.struts.DelegatingActionProxy"> 

2.2.4使用Ajax改進用戶體驗 

在用戶進行注冊子模塊中,注冊頁面使用Ajax頁面無刷新技術。在客戶端,當用戶名輸入框失去焦點時,信息己發送至服務器端,并判斷用戶名是否存在,若已存在,則彈出對話框提示。Ajax技術中使用了Dwr框架。Dwr是在Apache許可下的一個開源的解決方案,它允許在瀏覽器里的代碼使用運行在Web服務器上的Java函數,就像它就在瀏覽器里一樣。Dwr使得瀏覽器不用刷新頁面就可以從遠程Web服務器取得用戶需的數據,這種無刷新頁面的交互方式大大提高Web頁面的響應時間。具體做法是先導入Dwr的jar包,然后配置Web.xml和/Web?INF/下的dwr.xml文件。Dwr可以將普通的類成JavaScript可以調用的腳本對象。在用戶注冊子模塊中,Dwr的類是在Spring配置文件中定義的javabean,dwr.xml配置文件如下: 

在頁面代碼中要導入/dwr/interface/JPetNameCheck.js、dwr/engine.js、dwr/util.js腳本,通過腳本對象調用方法,第二個參數是回調函數的函數名。 

相關精選

亚洲精品一二三区-久久