真人一对一直播,chinese极品人妻videos,青草社区,亚洲影院丰满少妇中文字幕无码

0
首頁 精品范文 spring框架

spring框架

時間:2023-05-30 08:54:22

開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇spring框架,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。

spring框架

第1篇

Abstract: This thesis introduced spring framework. Present tier uses Struts technique which is integrated into Spring through the configuration. Define the transaction management based on AOP technique in business tier in order to enhance the stability and flexibility of system. Define the base DAO class and configure in Spring framework in data tier to provide the standard exception types.

關鍵詞: 軟件架構;可維護性;事務管理

Key words: software architecture;maintainability;transaction management

中圖分類號:TP392文獻標識碼:A文章編號:1006-4311(2010)16-0158-02

0引言

為了高效的完成業務功能需要系統具有良好的穩定性、可維護性和易于擴展的特點。以Spring為核心,以Struts為前端web表示層開發,以Hibernate為O/R映射的工具,建立了松散耦合軟件架構,使系統的靈活性大大的提高。

1系統的架構設計

1.1 系統的架構分層MVC是一種經典的軟件架構,其生成結構嚴謹的子系統化應用程序的有效性已得到證實[1]。本系統架構按照MVC的設計模式分為三層分別是表示層(Presentation)、商務層(Business)、數據層(Data)[2]。

表示層使用Struts應用框架作為實現框架,并將Spring的Web Application配置到Struts中。Struts最早是作為Apache Jakarta項目的組成部分問世運作。項目的創立者希望通過對該項目的研究,改進和提高Java Serve Pages (JSP) ,Servlet,標簽庫以及面相對象的技術水準[3]。

商務層和數據層使用Spring框架和Hibernate。處理了BO和DAO的依賴,處理了接口和實現類的依賴,事務處理,在DAO層對Hibernate API的包裝,在DAO層的異常包裝轉換。Hibernate完成ORM功能。

基于Spring的表示層、商務層、數據層分層設計即使實現三層的松散耦合,又提供了集中配置的功能,使系統的各層功能明確,使系統的可維護性大大提高。

1.2 層間的調用的規約禁止表示層,商務邏輯層,數據訪問層的跨層調用。數據信息的跨層傳遞可以使用DTO,如果PO信息量滿足要求也可以把PO直接當作DTO使用,DTO類型不限可以使Java Bean,Map。DAO,BO必須聲明接口,并且在編碼中只允許使用接口類型,不允許出現實現類,增強系統可維護性,減少耦合性。

2數據訪問層

2.1 設計的目的和方法主要目的是能夠清晰地劃分出應用層次而不管使用何種數據訪問和事務管理技術;使應用對象之間的耦合松散。業務對象不再依賴于數據訪問和事務策略;不再有硬編碼的lookup;不再有難于替換的singletons;不再有自定義的服務注冊。從而增強了系統可維護性。設計的方法是采用Spring和Hibernate相結合的方法。

基于O/R(Oriented/Relation)映射數據存取技術的Hibernate,在大型項目中被廣泛地使用,它將應用系統邏輯和數據存儲邏輯分開,而且它將所有數據存儲邏輯都封裝在持久層的類中,對應用系統開發者隱藏了數據存儲的實現細節。應用系統開發者只要通過持久層提供的接口,以自己熟知的處理方法,向對象發送數據存儲或數據裝載信息,就可以完成對象持久化的工作。暫態對象和持久對象之間的區別也被隱藏起來,應用系統開發者使用同樣的處理方式來對待暫態對象和持久對象。所以選擇Hibernate作為底層數據持久化工具。

在Spring框架中可以集成了Hibernate,同時提供了的Hibernate的DAO的抽象類,將異常封裝成一致的異常層次。Spring引進了DAO異常體系,主要目的是為了夠清晰地劃分出應用層次而不管使用何種數據訪問和事務技術。

2.2 配置與定義在系統的數據訪問層的設計中,為了提供統一的異常處理方式和統一的事務處理方式。在配置文件中定義Hibernate的Session Factory這樣可以為所有的Spring中定義的Bean調用。根據IoC的原則,采用聲明式的方式配置定義的Base DAO。Base DAO是Spring不可裝載的基類,其主要的功能是負責其他的DAO提供Session Factory。這樣可以為Hibernate Sessio Factroy提供統一的維護,增強系統的可維護性。用戶自定義的DAO類要繼承于Hibernate Dao Support類或其子類。并要定義用戶自定義DAO的接口,在接口的定義中展現用戶自定義類的方法,這樣才能由Spring利用java反射機制生成其相應的DAO類的實體。這樣所有的DAO子類就可以選擇直接通過Hibernate Template來初始化,并將特定的異常轉換為unchecked異常體系。

3業務層

業務層是整個系統的核心,其中包含著核心的商業邏輯,需要完善的日志操作日志,全面的事務管理。在本節將介紹在spring框架下配置BO和進行事務管理的配置。

3.1 Spring事務管理的概念Spring提供了一致的事物管理抽象。這個抽象是Spring最重要的抽象之一,它有如下的優點:

①為不同的事務API提供一致的編程模型,如JDBC、Hibernate、iBatis數據庫層和JDO。提供比大多數事務API更簡單的,易于使用的編程式事物管理API。②整合Spring數據訪問抽象。③支持Spring聲明式事物管理。

事物管理抽象為Plateform Transaction Manager,它的實現和定義同其他Spring容器中的對象一樣都是由容器管理的。這個好處是即使使用JTA,也是有很有價值的抽象:事務代碼可以比直接使用JTA更加容易測試。在Spring中,Transaction Exception是unchecked的。底層的事務失敗幾乎是致命的,很少有情況可以從他們中恢復,開發者依然可以撲獲并處理Transaction Exception。Transaction Definition接口用來定義事務的,可以設定如下內容:

事務隔離程度:當前的事務和其他事物的隔離的程度。

事務傳播程度:通常在一個事務中執行的所有代碼都會在這個事務中運行。但是,如果一個事務上下文已經存在,有幾個選項可以指定一個事務性方法執行行為。例如,簡單的在現有的事務中運行,或者掛起現有的事務,創建一個新事務。

事務超時程度:事務在超時前能夠運行多久。

只讀狀態:只讀事務不需要修改任何數據。在只讀的某些情況下是一種非常有用的優化。

Transaction Status接口為處理事物的代碼提供一個簡單的控制事務執行和查詢狀態的方法。通過get Transaction Status方法可以獲得Transaction Status對象,他可能代表一個新的或已經存在的事務。如同J2EE事務上下文一樣,Transaction Status也是和執行的線程相關聯的,用來反映事務的狀態。

3.2 基于AOP的事務管理的實現根據分析,決定使用Spring框架結合Hibernate實現事務管理的業務。Spirng和Hibernate本身不具備事務的管理的功能。Spring對Hibernate進行了封裝,Hibernate 是JDBC 的輕量級封裝。在事務管理過程中,Spring將事務委托給Hibernate,后者又將其委托給底層的JDBC或者JTA,以實現事務管理和調度功能。Hibernate的默認事務處理機制基于JDBC Transaction。JDBC的事務處理功能簡單、易用。JTA的功能強大其管理的事務可以跨越connection,但其資源消耗較大。所以決定采用Hibernate的事物管理的默認實現。

通過以上的配置將Spring框架的事務管理功能映射到Hibernate的默認事務管理功能。并且自定義了異常類型Tmj Business Exception,當該異常被拋時,事務將進行回滾操作。

3.3 BO的基類的定義BO負責業務邏輯的對象,不及數據持久化的調用允許在BO拋出異常。BO內有一個或多個DAO Interface的成員變量,DAO初始化是通過Spring框架在xml文件配置的。A_BO調用B_BO必須把B_BO作為A_BO的屬性,同時配置到Spring的配置文件中事務處理是控制在BO層,事務模型屬于聲明型事務。

采用AOP的編程的方法的,當在BO中的方法中拋出Business Exception時,事務自動回滾。在Trace Interceptor類中引用Tmj Logger類將用戶的操作的行為記錄如日記文件。在BO中利用面向方面的編程方法使事務管理和日志的記錄一致的,增強了系統的穩定性,提高了系統的維護性。

4表示層的設計

表示層是同用戶交互的界面,負責將數據表示。表示使用廣泛使用的Struts應用框架架構。

Struts應用框架通過“Plug-in”元素同Spring框架結合起來。

Base Action的定義:Base Action對Action進行封裝,減少了系統的冗余性。 Base Action主要提供如下的功能:get Bean()的將在Application Context中聲明的bean引入到Web Application中,便于在表現層引用。

check Login()判斷用戶是否已經登錄。

log AccessInfo()將用戶的信息、訪問時間和訪問的頁面ID等信息寫入日志文件中。

5總結

在實現過程中,根據Spring提供的AOP的功能,配置完善的事務管理程序為系統提供了統一的透明的事務管理方法;使異常更容易的被分類處理,并記入日志,便于系統管理員分析錯誤;使系統的穩定性大大提高。

參考文獻:

[1]Richard Jensen. Mapping Classes to Relational Tables. Java Pro, 2004, (4):11-12.

第2篇

關鍵詞: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中。可以用DSL定義流,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

第3篇

關鍵詞:Struts;Spring;Hibernate;人力資源管理系統;依賴注入

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)11-2637-03

Human Resource Management System Design and Implementation Based on Struts/Spring/Hibernate Integration Framework

HU Zhi-min

(Department of Information Engineering, Hunan Urban Construction College, Xiangtan 411100, China)

Abstract: Modern enterprise competition is the competition for talent, human resource management system can improve the efficiency of corporate talent management. Based on the Java EE platform, human resources management system has been designed, using Struts/Spring/Hibernate integration framework for the development of human resources management system, using the MVC pattern to the user interface and business logic completely separate, using dependency injection to improve the system components of the between independence. The use of Struts/Spring/Hibernate integration frameworks for information systems development, than the traditional multi-layer model has a higher flexibility and scalability.

Key words: struts; spring; hibernate; human resources management system; dependency injection

人力資源管理是知識經濟時代企業管理的主要內容,“以人為本”突出了人在企業中的作用。隨著市場競爭的日益激烈,企業競爭由外部競爭逐漸轉變為全方位競爭,而人才的競爭更是企業競爭的焦點。

1998年前后,我國的很多大型企業都逐步認識到引才、用才、留才的重要性,于是,很多企業都先后設立了人力資源部。國內的一些高校也相繼開設了人力資源管理專業。發展到現在,人力資源主要從事員工招聘選拔、績效考核、薪酬福利管理、勞動關系協調等工作。而信息化人力資源的管理模式也由此脫穎而出。

同志指出:“人才問題是關系黨和國家事業發展的關鍵問題。”;“國以人興,政以才治,為政之道,要在得人”。新世紀、新階段實施人才興企戰略,使人才越來越受到重視。[1]但是傳統的人力資源管理方法已經不適應于信息時代的發展要求,在傳統模式下,人力資源管理部門機構比較龐大,工作任務繁重,各種工作由于使用人工來操作極易出錯。建立信息化的人力資源管理系統已經成為企業人力資源管理的首要任務。

根據企業人力資源管理需求,設計了基于Java EE的人力資源管理系統架構,采用Struts/Spring/Hibernate集成框架為基礎進行了系統設計,采用MVC、依賴注入、過濾器等技術簡化了系統開發,提高了系統的靈活性和可擴展性。

1 系統需求

為了提高企業信息化水平,促進企業管理的規范化、制度化、流程化,決定實施人力資源管理系統。希望通過這個系統的實施規范人事檔案的管理,規范薪酬體系和薪酬發放的管理,規范人事的調動管理、培訓管理和激勵管理。并對招聘工作的職位、簡歷、面試、招聘題庫、招聘考試、錄用等環節加以規范。系統還需提供人事檔案的導出和報表功能。

本系統將實現人力資源檔案管理、薪酬管理、調動管理、培訓管理、激勵管理和招聘管理六大功能。其中人力資源檔案管理是本系統的基礎數據和核心內容。包含人力資源檔案登記、人力資源檔案登記復核、人力資源檔案查詢、人力資源檔案變更和人力資源檔案刪除四個子模塊。薪酬管理是系統中的一個重要部分,在系統管理模塊設置薪酬標準項目后,進行薪酬發放登記。員工工作機構和職位發生變動的時候,通過調動管理執行登記員工調動檔案,并登記其新的機構,職位和薪酬標準。通過培訓管理進行教育培訓檔案的建立,修改和維護,培訓信息等工作。激勵管理主要信息包括獲獎人員,獎懲時間、獎懲內容、獎金類別等信息,可以對每個員工獎懲信息進行增加、刪除、編輯操作。招聘管理實現當某個崗位出現空缺的時候,或者隨著公司業務發展,需要招聘新員工的時候,通過這個模塊。后的職位可以進行修改。另外,需要提供職位查詢的功能,查詢已的職位,并對已的職位錄入應聘者信息。

2 開發平臺選擇

2.1 Struts/Spring/Hibernate集成框架

Struts/Spring/Hibernate集成框架是Struts、Spring和Hibernate三種技術的有機融合,是目前應用最廣泛的Java EE架構。在Struts/Spring/Hibernate集成框架中,Struts的作用是提供MVC模型,將界面、業務邏輯和數據分離,并提供一個高可擴展的架構。Spring作為依賴注入的容器,將項目中的構建進行粘結。而Hibernate提供了一個抽象的數據服務視圖,將用戶對數據庫的訪問進行高度抽象。[2]

Struts 是目前創建Web 應用最常用的表現層MVC 框架實現,是JakartaApache 的一個開源項目[3]。基于Model2 的Struts框架利用控制器和定制標簽庫將應用中的模型和視圖分離,達到了層間松散耦合的效果,同時提高系統的靈活性、重用性和維護性。作為開源項目,Struts經受了大量實踐的檢驗,功能越來越強大,體系也日臻完善,并且對其他技術和框架顯示出良好的融合性。[4]

Spring由Rod Johnson創建,它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用。

2.2數據庫服務器(SQL Server 2005)

SQL Server 2005是微軟具有里程碑意義的企業級數據庫產品,它在企業級支持、商業智能應用、管理開發效率等方面有了顯著的增強,是集數據管理與商業智能分析于一體的、極具前瞻性的下一代數據管理與分析平臺。

SQL Server 2005基于SQL Server 2000的強大功能之上,提供了一個完整的數據管理和分析解決方案,它將會給不同規模的組織帶來不同的幫助。采用SQL Server 2005作為人力資源管理系統的數據庫,綜合考慮了系統規模、吞吐量、支出成本以及技術適應性等方面。

2.3應用服務器(Tomcat)

Tomcat 是一個小型的輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。在人力資源管理系統中,采用Tomcat 5.5做為應用服務器。

3 系統設計

3.1 Action設計

Struts采用struts-config.xml來進行Action的配置,主頁的Action配置如圖1所示。

對應的xml編碼如下:

3.2依賴注入設計

依賴注入由Spring進行管理,所有需要被注入的Bean,都在applicationContext.xml文件中進行配置,其中datasource Bean的配置如下:

net.sourceforge.jtds.jdbc.Driver

jdbc:jtds:sqlserver://localhost:1433/HR_DB

sa

123456

3

3

2

50

600

900

100

10

3.3 過濾器的應用

在系統開發過程中,需要解決Struts的中文支持問題,開始使用在Action中使用程序進行編碼轉換,但是隨著Action數量的增多,這種方法不僅容易出錯,而且浪費人力。為了提高開發速度,采用了過濾器的技術對中文編碼進行支持,過濾器類由Spring直接提供,也可以由用戶自己編寫。過濾器在Web.xml文件中進行配置,配置如下:

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

GBK

forceEncoding

true

CharacterEncodingFilter

*.jsp

CharacterEncodingFilter

*.do

4 總結

在企業信息化建設的過程中,可以采用各種技術來構建系統,每種技術都有自己的適應范圍。企業人力資源管理系統必須要適應企業的管理要求,而采用Struts/Spring/Hibernate集成框架可以提供一個高可配置和可擴展的系統,系統可以經過部分修改直接適應其他企業的需求,達到了軟件重用的目的。

參考文獻:

[1] 蔡琳.以科學發展觀指導企業人力資源管理[J].經營管理者,2009(22):322.

[2] 楊海斌.基于SSH框架的高校網站群內容管理系統設計[J].軟件導刊,2009,8(9):118-119.

第4篇

關鍵詞:EJB;spring

中圖分類號:G718 文獻標識碼:B 文章編號:1672-1578(2016)01-0379-01

EJB (Enterprise JavaBean)是JavaEE重要的組成部分,其定義和規定了一個用于開發基于組件的企業級多重應用的標準。EJB需要嚴格地實現和繼承各種不同類型的接口,相類似的以及重復的代碼功能大量存在。同時EJB的配置也是非常復雜和繁瑣的,同樣通過JNDI進行目標對象查找的也是相當耗時。對于開發者學習EJB的需要高昂代價和成本,項目的具有極低的開發效率,應用程序運行對資源消耗極高,這些缺點都造成了EJB的在使用中非常困難。

隨著JavaEE技術在不同領域大規模廣泛的應用,同時EJB技術也受到很多的質疑,EJB的使用給JavaEE應用開發帶來了很大的開銷成本和開發上的復雜性。在EJB3.0之前,就是一個簡單的EJB組件都需要編程遠程/本地接口、Bean實現類以及Home接口,這使得其應用受限。正是由于EJB應用非常復雜,因此EJB也被稱為重量級組件。

為了克服重量級組件EBJ的缺陷,許多輕量級容器因此產生。輕量級容器,是因為它們能將簡單的、普通的JavaBean作為應用組件,并通過IoC(Inversion of Control,控制反轉)來解耦組件之間的依賴關系。隨著輕量級容器的大量的被應用,開發者逐漸開始采用輕量級進行應用程序的開發。Spring框架正是輕量級框架的代表,其著眼于JavaEE應用開發的絕大多數方面,通過其分層架構,并針對它們提供了集成的框架和一攬子解決方案。Spring在數據庫管理、事務管理、持久化管理、線程管理、遠程調用等方面用輕量級方案替代EJB。Spring獨立于各種應用服務器,它是一個開源的組件,我們可以把它視作一個容器,它可以在無應用服務器支持的情況下提供應用服務功能,如聲明式的事務、持久化等。

Spring框架通過IoC容器解決了組件相互的依賴關系,Spring的核心是輕量級IoC容器和AOP(Aspect Oriented Programming,面向切面編程),可以通過簡單的Java對象提供企業級的服務;通過AOP的聲明式的服務,為允許應用的業務邏輯與系統級服務進行內聚性的開發。這些簡單的服務,可以實現系統開發的靈活性、可擴展性和無侵入性。

Spring在當前是一個著名的開源框架,它是在實現簡單的企業級系統開發應運而生的。Spring框架包括很多應用模塊,這些模塊在不同的層次進行擴展,下層為上層提供服務。分層架構是框架的主要優點之一,分層結構可以允許開發者選擇不同的層進行使用不同的組件,同時為應用系統開發提供集成的服務。Spring提供了JavaEE應用的各層的完美解決方案,而不是只單純的服務于某一層。Spring為企業級應用開發提供了"一站式"的解決方案,并貫穿常見的表現層、業務層和持久層[16]的支持。Spring框架包含常用組件的體系結構,Spring Framework架構按功能被劃分為多個封裝的模塊。Spring模塊的之間的裝配十分靈活,在不同的應用場合中,可以通過框架基于不同的子集模塊進行構建。

Spring框架包含相互獨立存在的七個基本的模塊:

SpringCore:Spring框架的核心模塊。它提供基本的IoC容器的實現,即依賴注入。

SpringDAO:提供JDBC的抽象層,能提供編程方式和聲明方式控制事務,使得開發者不用去編寫非業務功能的JDBC代碼。JDBC DAO抽象層提供了有意義的異常層次結構,Spring DAO 中的面向 JDBC 異常繼承了通用的 DAO 異常層次結構,使得在使用過程中非常方便。

SpringContext:構建在Core模塊之上,并對Core模塊的功能進行了擴張。同時提供了高級Spring IoC容器的實現,提供了Bean的訪問方式,并且增加了用于系統資源定義、綁定、資源裝載、透明的裝載上下文方式和事件移值等重要功能。

SpringAOP:它建立了面向方面編程框架,實現了AOP聯盟定義的AOP編程實現。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務[17]。

SpringORM:為當前流行的對象/關系映射框架(例如Hibernate、MyBatis以及JPA)提供集成。

SpringWeb:提供面向Web應用集成的功能,同時將Spring作為這些Web框架(例如Struts、JSF等)的后端實現。

Spring Web MVC:該模塊提供MVC的實現機制,本框架是一個包含全部功能的可以構建 Web 應用程序的 MVC 優秀實現。通過策略接口使得MVC 框架變成了可以高度可配置的,本框架實現了很多視圖技術,常用的包括 JSP、iText 、Tiles、POI和Velocity。

以上各模塊以分層的方式進行組織,下面的模塊是服務上面的,上面的模塊依賴于下面的模塊,Spring Core模塊位于整個體系結構的最底層,它是Spring Framework工作運作的基礎。

參考文獻:

[1] Flanagan D. JavaScript: the definitive guide[M]. " O'Reilly Media, Inc.", 2002.

[2] 吳曉明,潘永紅,謝惠芳. 基于jQuery的中南大學門戶網站Web UI的實現[J]. 武漢大學學報(理學版),2012,S1:361-364.

第5篇

關鍵詞:Spring;AOP;數據庫認證;日志管理

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

Design and Implementation of Log about Database User Authentication Base on Spring and AOP

CHEN Huan-ying, MA Jing-jie

(Henan Quantity Engineering Occupation College, Pingdingshan 467001, China)

Abstract: There is a lot of businesses like database authentication, parameter's validation and abnormal process in the project development. The robustness of project is affected by their robustness. Using the old development, we describe repeatedservice code. The Spring and AOP can resolve these problems. The aspect is separated from topical business in progrom, using the aspect can efficiently solve the repetitive work.

Key words: Spring;AOP;database authentication;log administration

1 概述

1.1 什么是Spring

Spring是一個開源框架,它由Rod Johnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。

Spring框架是一個分層架構,由 7 個定義良好的模塊組成[1]。Spring 模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式,如圖1所示。

組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。每個模塊的功能如下:

1) 核心容器:核心容器提供 Spring 框架的基本功能。

2) Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。

3) Spring AOP:Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。

4) Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同數據庫供應商拋出的錯誤消息。

5) Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關系工具。

6) Spring Web 模塊:Web上下文模塊建立在應用程序上下文模塊之上,為基于 Web 的應用程序提供了上下文。

7) Spring MVC 框架:MVC框架是一個全功能的構建 Web 應用程序的 MVC 實現。

1.2什么是AOP[2]

AOP――Aspect Oriented Programming, 簡稱AOP,面向方面/切面的編程。AOP是一種編程模式,提供從另一個角度來考慮程序結構以完善面向對象編程(OOP)。AOP為開發者提供了一種描述橫切關注點的機制,并能夠自動將橫切關注點織入到面向對象的軟件系統中,從而實現了橫切關注點的模塊化。日志、事務、安全驗證等這些通用的、散步在系統各處的需要在實現業務時關注的事情就稱為“方面”,也稱為“關注點”。

2 AOP的實現原理

項目開發中一般的業務處理有記錄日志,合法性檢驗等。

1) 將業務系統中這些日志、事務、安全驗證等操作分離為單個的方面,集中處理,如圖2所示。

實現特定功能的方面代碼在AOP概念中又稱為“通知(Adivice)”,通知分為前置通知、后置通知、環繞通知和異常通知。前置通知是在業務執行前自動執行的通知;后置通知是在業務執行后自動執行的通知;環繞通知能力最強,它可以在業務調用前執行通知代碼,可以決定是否還調用目標方法;異常通知是業務方法拋出異常時自動執行的方面代碼。

2) 講方面分離出后,就專一的開發業務功能代碼。

3) 通過Spring的方式將方面(即通知)織入到業務對象中。

AOP實現原理如圖3所示。

3 以項目開發中的數據庫登錄驗證日志管理為例講解Spring與AOP的實現及運用

1) 數據庫登錄用戶業務關鍵代碼如示例1所示:

示例1:

public class UserBiz {

public User login(User user){

UserDao userDao=new UserDao();

User userg=userDao.login(user);

return userg;

}}

2) 使用前置通知實現方面代碼如示例2所示:

示例2:

public class LogAdvice implements MethodBeforeAdvice {

private static DateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh時mm分ss秒");

public void before(Method m, Object[] args, Object target)

throws Throwable {

//Method m:被通知目標方法對象

//Object[] args:傳入被調方法的參數

//Object target:被調方法所屬的對象實例

System.out.println("\n[系統日志][" + sdf.format(new Date()) + "]"

+ m.getName()

+ "("+ Arrays.toString(args) + ")"

+" the method belong to "+target.getClass().getName());

}}

3) 使用Spring將方面代碼織入業務對象中,關鍵代碼如示例3所示:

示例3:

class="org.Springframework.aop.framework.ProxyFactoryBean">

aop.BookBiz

logAdvice

afterAdvice

aroundAdvice

ExcepAdvice

4 總結

無論是業務方法中,還是調用業務方法的代碼中,都看不到日志代碼的蛛絲馬跡,可運行的時候,確實輸出了日志代碼(用戶登錄過)的信息。

通過使用Spring AOP,我們將日志代碼分離出去,基本上不需要改動原來的代碼,通過簡單的配置,業務系統就具備了日志的能力。這樣很好的提高了代碼的重用性,這也就是Spring AOP備受大家歡迎的原因所在。

參考文獻:

第6篇

Abstract: The opensource framework based on J2EE technology is widely applied and increases development efficiency of the J2EE platform application software. The integration of Spring+Struts+Hibernate J2EE lightweightplatform and technology is discussed in this paper. The Algorithm, function, design and implementation of the Injection Mould Quotation system based on SSH is discussed. The system is convenient, rapid, accurate,scientific, good expansibility,maintainability and robustness.

關鍵詞:Spring;Struts;Hibernate;模具;報價系統

Key words: Spring;Struts;Hibernate;molds;quotation system

中圖分類號:TP31 文獻標識碼:A文章編號:1006-4311(2010)34-0163-01

0引言

Spring+Struts+Hibernate(SSH)是多層Web應用開發架構,這是一個開源的輕量級J2EE框架。大多數的web應用都被分成至少幾個各負其責的層次,一般包括表現層、業務層、持久層,每層在應用程序中都有明確的責任。表示層使用Struts,業務邏輯層使用Spring,數據持久層則采用Hibernate,即將Struts應用中的業務邏輯交給Spring管理,相關類使用Spring的Beans配置完成,Hibernate負責數據的持久化。整個架構利用Spring的核心思想一IOC和AOP整合struts和Hibernate,達到層次和組件之間的松散耦合,提高系統的可重用性和可維護性,綜合利用這三種框架還可進一步提高開發的效率,并且系統框架在安全性、穩定性和健壯性上都有良好的改進。本注塑模具報價系統以較普遍認可工時法算法為基礎,結合材料重量法,并基于Spring+Struts+Hibernate平臺設計開發,該系統既能對模具訂單做出快速反應,易于操作,又有較高的準確性達到報價方便精準,系統可維護性、可擴展性、安全性好。

1整合的架構和技術平臺

1.1 Spring+Struts+Hibernate架構核心技術Spring是一個開源J2EE框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件。核心容器提供Spring框架的基本功能,核心容器的主要組件是BeanFactory,它是工廠模式的實現,BeanFactory使用控制反轉 (IOC)模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。Spring上下文是一個配置文件,向Spring框架提供上下文信息,Spring上下文包括企業服務,例如JNDI、EJB、電子郵件、國際化、校驗和調度功能,Spring AOP通過配置管理特性,Spring AOP模塊直接將面向方面的編程功能集成到了Spring框架中,Spring AOP模塊為基于Spring的應用程序中的對象提供了事務管理服務。

Struts是為開發基于模型(Model)―視圖(View)―控制器(Controller)(MVC)模式的應用架構的開源框架,MVC是一種軟件設計模式,現在已經被廣泛的使用。MVC模式的主要目的是分離業務邏輯層和表示邏輯層。表示層是一個用戶可以看到的界面,它只是給出完成具體業務功能的一種有效手段,與具體的企業業務無關。業務規則的修改不需任何表示層的改動,表示層的改動也不會影響業務規則。控制器是負責協調模型和視圖層之間的數據流,響應用戶的請求和行為管理模型數據。

Hibernate是采用ORM(對象關系映射)映射機制的持久層開源工具,它是JAVA應用和關系數據庫之前的橋梁,負責POJO類(標準的Java Bean)對象和關系數據之間的映射。Hibernate對JDBC進行了非常輕量級的對象封裝,向上層應用提供了面向對象的數據庫訪問API,實現了與數據庫無關的持久層,使得程序員可以隨心所欲的使用對象編程思維來操縱數據庫。

1.2 Spring,Struts,Hibernate的有機結合三者有機結合實現合理系統分層,Struts主要實現控制層,Hibernate實現持久層,JSP實現視圖層,事務模型層是核心Java類,由Spring實現事務管理和異常管理。三者結合只需要配置好相應的XML文件。

Spring配置applicationContext.xml,里面配置Hibernate數據源和Hibernate的持久映射類、依賴注入Hibernate模板、JDBC模板和事務管理,把DAO層和事務層的Java類通過Spring的依賴注射機制和AOP掛接配置起來,由spring管理事務層及更下層的DAO對象的關系,使事務管理和異常處理從Hibernate的持久層提升到了業務層,事務管理和異常處更加簡便和靈活。Spring實現靈活Bean管理,BeanFactory使用控制反轉 (IOC)模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。

2系統基本算法功能

本注塑模報價系統采用基點工時法進行計算,結合材料重量法計算。所謂工時法就是按照模具制造工時計算模具價格的一種方法,其原理是:將總銷售成本連同總利稅平均分攤到企業的每一個實際工時中,首先核算出單位工時的價值,然后再根據模具的制造總工時計算模具的銷售價格。工時法主要依據模具制造過程中所發生的總工時費用之和,再加上原材料費、設計費、工具費、試模費等得出。該方法考慮了影響制造總工時的主要因素,如制件的外表尺寸、復雜程度、產品精度、表面特征、模具結構等。在計算原材料費時考慮了標準模與自制模情況,標準模由用戶自己填模架購置費、標準件購置費、耗用鋼材費相加得到,自制模根據材料單價和重量乘積之和得到。最后把工時費和材料費考慮設計費、試模費、運輸費、工具費、稅率費根據總公式折算得到最終價格。

系統主要功能如下:①系統管理模塊。②注塑模具報價模塊。③報價參數設置模塊。④報價統計查詢模塊。⑤權限管理模塊。⑥數據庫管理模塊。⑦用戶管理模塊。

主要功能模塊是注塑模具報價模塊和報價參數設置模塊,報價參數可靈活設置,使模具報價更科學有效。

3結束語

本系統基于Spring+Struts+Hibernate框架設計與實現,在較準確普遍認可工時法基礎上根據企業實際情況結合材料重量法設計較科學精準算法,系統具有先進性、規范化、靈活性、方便性、可維護性、安全性好、可移植性好等特點。使報價人員擺脫了經驗報價模糊不準和手工報價麻煩情況,使模具報價更方便快速準確,對提高模具企業的信息化水平經濟經濟效益具有重要的意義。

參考文獻:

第7篇

關鍵詞:Web應用;Struts框架;Spring框架;Hibernate框架;實驗教學

中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2010)07-1783-02

Based on SSH Frame Experiment Teaching Platform Research

SONG Qing-yuan, JIANG Ning

(School of Software, Nanchang University, Nanchang 330047, China)

Abstract: With the rapid development of Internet, the application program of server based on Browser/Server is widely used. There are many technologies and frameworks in developing web application. This article through to Struts, Spring and the Hibernate three kind of frame technology's analysis, designs based on the SSH lightweight experiment teaching platform application frame. This article carries on the elaboration to performance history's several key technologies, and to use this integrated frame to carry on the Web application system's design and the development has provided the reference.

Key words: Web application; Struts; Spring; Hibernate; experiment teaching

隨著計算機網絡技術的發展,使得教學方式由傳統的校內教學向網上教學延伸。實驗教學平臺給網上教學活動提供了一個基本的運行環境,人們可以在網絡環境下實現信息服務與資源共享。開發實驗教學平臺,將大大促進各個學科教學活動的進行,同時也適應了社會發展的需要。

SSH框架是將Struts、Spring、Hibernate框架良好的整合起來,使用Struts作為表示層框架,Spring作為業務邏輯層框架,Hibernate作為持久化層框架。

實驗教學平臺基于SSH輕量級框架搭建,使用Tomcat作為Web應用服務器。平臺為學生提供充足的教學課件與實驗資源,使學生能通過實驗來加深對理論的理解,提供了師生互動功能,增強了教學效果。

1 實驗教學平臺的概要設計

1.1 系統概述

平臺為學生提供充足的教學課件與實驗資源,使學生能通過實驗來加深對理論的理解;師生可以良好的互動,學生可以向老師提出自己問題并及時獲得老師的答復。系統提供良好的安全機制保證本平臺穩定的運行。如圖1所示。

1.2 功能模塊

1.2.1 登錄

為了保證實驗教學的規范和實驗平臺的安全性,學生和教師在使用該平臺時,必須先登錄。

1.2.2 實驗預約

學生可以在實驗室規定的開放時間內,自主選擇做實驗的時間。學生預約后,實驗管理員在公告欄及時公布實驗預約情況,必要時進行合理的調整。

1.2.3 教學內容

任課教師提前實驗項目和實驗指導書,以便學生提前了解實驗目的,并讓學生預習實驗內容。

1.2.4 作業管理

學生從客戶端書寫實驗報告或制作電子作業,并上傳到服務器。教師下載實驗報告或電子作業,批改并公布實驗成績。學生并可在線查詢成績。

1.2.5 公告

實驗管理員可在公告區內各項通知,如實驗規章制度、臨時公告、各實驗日程安排表、實驗預約統計表等。

1.2.6 在線答疑

學生可就某一實驗項目提出問題,老師進行非實時答疑。學生擁有對自己所提問題的管理權,包括修改、刪除等。教師擁有對所授課程全部問題及答疑內容的管理權,包括修改、刪除等。

1.2.7 教師和學生管理

實驗管理員對任課教師和學生具有管理權,在每學期開學,管理員對任課教師和學生資料進行初始化。

2 SSH框架的總體設計

SSH輕量級框架是目前企業級應用開發主流的設計框架。如圖2所示。

SSH輕量級框架成功的采用了Struts、Spring、Hibemate的優勢,規避了三個框架的缺點,使得各個框架可以充分發揮自己的優勢:

1) Struts是一個Web應用框架,主要用于表示層,其邏輯處理功能不強大,所以SSH框架將邏輯處理功能交給Spring框架來做,使得Struts框架可以專注于Web表示層開發。

2) Spring雖然也提供相應的模板和輔助類來對JDBC進行封裝,但是這種封裝并不很完善和靈活,在實際需求中不能滿足各種用戶要求,所以使用Hibemate來做持久層框架,使Spring可以專注于業務邏輯的開發。

3) Hibemate是一個面向Java環境的ORM數據庫映射工具,這種映射技術可以把對象模型表示的對象映射到基于SQL的關系模型結構中,因此可以整合到J2EE系統中作為持久層框架。

SSH架構使用表示層、業務邏輯層、持久層實現,層與層之間邊界清晰、功能獨立,使得開發人員可以專注于自己熟悉的領域進行開發,能充分發揮團隊化協作能力。使用Hibemate框架連接數據庫,開發人員不用考慮不同數據庫之間的差異,提高了數據處理的能力和效率。并且Spring、Hibernate與Struts并不依賴于具體的服務器。基于SSH開發出來的系統可以部署在多種服務器上。因此可以看出SSH是一個良好的設計框架,開發人員可以基于SSH框架進行J2EE企業級應用開發,提高開發效率,降低系統維護成本和開發人員的學習成本,便于團隊之間合作開展。

3 基于SSH框架實驗教學平臺的詳細設計

3.1 表示層設計

使用Struts作為表示層的實現框架,它繼承了MVC設計模式,結合Struts標簽庫,可以很好地實現收集用戶數據、顯示頁面。同時用戶的任何請求都先通過Acegi的過濾器認證后,可以進一步訪問系統的資源。

3.2 業務層設計

使用Spring框架來實現業務邏輯層,Ioc容器負責處理應用程序的業務邏輯、事務管理、DAO組件。業務邏輯層還需要提供與其它層交互的接口,管理業務對象之間的依賴性。

3.3 持久層設計

使用Hibemate來實現持久層,對JDBC進行封裝,使開發人員可以用面向對象的思想來訪問各種廠商的數據庫

4 結束語

集成后的框架具備了三種框架的技術優勢,將Struts的MVC機制,Spring的反轉控制機制以及Hibernate的ORMapping映射機制融合在一起,以SSH架構在系統開發簡潔性、開發效率、開發成本以及維護費用等方面有著很大的優勢。

參考文獻:

[1] 戎偉,張雙.精通Struts[M].北京:人民郵電出版社,2006.

[2] 朱少敏,劉建明.基于輕量級JZEE平臺的政府采購系統的設計與實現[J].計算機工程與設計,2007,28(24).

[3] 蔣緯,馬光思.Spring與其他框架整合及流程分析[J].計算機工程,2007,33(14).

[4] 楊濤,周志波,凌力.基于struts和Hibernate的JZEE快速開發框架的設計與實現[J].計算機工程,2006,32(10).

[5] 宋秀琴,侯殿昆,方中純.基于StrutS和Hibemate的Web應用的構建[J].網絡與通信,2005,21(11).

[6] 丁振國,任新潔.基于Struts的Web應用開發研究[J].微機發展,2004,14(1).

[7] Dong J, Yang S. A Web Service for Visualizing Design patterns on Demand,Information Technology Coding and Computing,2005(4).

第8篇

關鍵詞:JAVAEE,Struts2,Hibernate,框架,Web,BBS

 

1. 引言

MVC開發模式和基于MVC模式的Struts 2框架的應用,研究Struts2如何最大限度的減少與Servlet API的耦合,從而使得單元測試工作變得更加容易。數據庫持久層技術的研究,對典型持久層框架的研究,重點研究如何將底層數據庫對象化。論文參考。

2. 技術簡介

2.1 Html語言

HTML(HyperTextMark-upLanguage)即超文本標記語言,是WWW的描述語言。本系統將使用HTML來做web頁面的顯示。

2.2 JavaScript

JavaScript 使網頁增加互動性。論文參考。JavaScript 使有規律地重復的HTML文段簡化,減少下載時間。JavaScript 能及時響應用戶的操作,對提交表單做即時的檢查,無需浪費時間交由CGI 驗證。本系統主要利用JavaScript做表單的驗證。

2.3 Struts2

Struts 2 與Struts 1相比,有很多革命性的改進,但它并不是新的新框架,而是在另一個赫赫有名的框架:WebWork基礎上發展起來的。WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因為Struts2是WebWork的升級,而不是一個全新的框架,因此穩定性、性能等各方面都有很好的保證:而且吸收了Struts 1和WebWork兩者的優勢,因此,是一個非常值得期待的框架。

2.4 Hibernate

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。

Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。論文參考。

2.5 Spring

Spring是一個開源框架,它由Rod Johnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

3. 概要設計

3.1 系統功能介紹和模塊介紹

系統包括主要的功能:新用戶的注冊,會員登錄,用戶自己修改信息,管理員刪除用戶,游客瀏覽留言,會員新增留言,會員留言回復,管理員刪除留言,管理員新增和刪除板塊等功能。

系統管理員通過帳戶密碼驗證后登錄論壇管理系統,進行相應的后臺管理如用戶管理,討論區管理和文章管理。用戶通過帳戶密碼驗證登錄論壇服務系統后,能夠在論壇內發表文章,回復文章,查詢文章,瀏覽文章等。而討論區管理員相對一般用戶則應該能夠進行相應的討論區管理,比如刪除文章,封鎖用戶ID等等。所以系統要實現下面四個模塊的功能:用戶注冊登錄功能, 會員發帖回復功能, 版主管理帖子功能,管理員管理論壇。

3.2 各模塊詳細功能

3.2.1 系統整體流程圖如圖1所示。

圖1系統整體流程圖

3.2.2 用戶流程圖流程圖如圖2所示。

圖2 用戶流程圖

4. 詳細設計

(1) 數據庫持久層架構

①設計持久化對象:(PO)

Admin:管理論壇,添加模塊,刪除模塊,授權用戶,刪除用戶

User: 發帖,回帖,查看帖子,版主可以刪除帖子和用戶

Topic:論壇帖子

Reply:用戶回帖

Board: 子版塊的信息

ParentBoard :父版塊的信息

Collect:用戶收藏的帖子

②根據持久化對象之間的關系建立對象模型;

③根據持久化類之間的關系建立Hibernate對應的映射關系;

④根據Hibernate映射關系生成數據庫

(2) 實現Dao層

①配置數據源,使用dbcp數據源,使用MySQL數據庫,在Spring容器中進行配置

<bean id='dataSource'

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

<propertyname='driverClassName'

value='com.mysql.jdbc.Driver'>

</property>

<propertyname='url' value='jdbc:mysql://localhost:3306/bbs'></property>

<propertyname='username' value='root'></property>

<propertyname='password' value='123'></property>

</bean>

② 配置SessionFactory對象,將Hibernate的映射文件注入

③配置Dao組件,將Dao層注入Spring容器管理

(3) 實現控制層和web層

Struts2 作為MVC框架連接模型層和web視圖層,將Struts2的ACTION注入Spring容器管理

Web層由jsp技術實現,web.xml文件配置見具體代碼。

結束語

本文利用現有的Web框架技術實現Struts框架、Spring框架和hibernate框架集成,提出基于JavaEE多層框架解決方案。并通過實例BBS系統對數據庫持久層技術進行研究。實現了關系型數據庫的對象化和面向對象軟件的設計開發。

參考文獻

[1] 李剛. 輕量級JavaEE企業應用實戰(第二版) [M].北京:電子工業出版社,2009

[2] 李剛. Struts 2權威指南 [M].北京:電子工業出版社,2008.

[3] 郭曉華. JSP應用開發詳解(第三版) [M].北京:電子工業出版社,2007.

[4] 付周京. 精通Hibernate3.0-Java數據庫持久層開發實踐 [M]北京:人民郵電出版社,2007.

[5] Ryan Asleson,Nathaniel T.Schutta.金靈譯. Ajax基礎教程 [M]北京:人民郵電出版社2006.

[6] 李剛. 輕量級JavaEE企業應用實戰(第一版) [M].北京:電子工業出版社,2008

[7] 張鈺. 精通Spring 2.x Java Web開發 [M].北京:電子工業出版社,2008

[8] 劉斌. NetBeans權威指南 [M].北京:電子工業出版社,2008

第9篇

[關鍵詞] 科技申報 MVCStruts Spring

一、JSP技術

JSP(Java Server Pages)技術是由Sun公司的用于開發動態Web應用的一項技術。它以其簡單易學、跨平臺的特性,在眾多動態Web應用程序設計語言中異軍突起,在短短幾年中已經形成了一套完整的規范,并廣泛地應用于電子商務等各個領域中。

JSP規范是Web服務器、應用服務器、交易系統以及開發工具供應商間廣泛合作的結果。Sun開發出這個規范來整合和平衡已經存在的對Java編程環境(例如,Java Servlet和JavaBeans)進行支持的技術和工具。其結果是產生了一種新的、開發基于Web應用程序的方法,給予使用基于組件應用邏輯的頁面設計者以強大的功能

二、 Struts2技術

Struts2并不是一個陌生的web框架,它是以Webwork的設計思想為核心,吸收struts1的優點,可以說Struts2是struts1和Webwork結合的產物。它的工作原理如下:

一個請求在Struts2框架中的處理可分為如下7個步驟:

(1)客戶端發出一個指向servlet容器的請求(tomcat);

(2)這個請求會經過圖中的幾個過濾器,最后會到達FilterDispatcher過濾器。

(3)過濾器FilterDispatcher是struts2框架的心臟,在處理用戶請求時,它和請求一起相

三、Hibernate技術:

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。

Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心接口分別加以介紹。

Session接口:Session接口負責執行被持久化對象的CRUD操作(CRUD的任務是完成與數據庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應用中的Http Session。這里當使用session這個術語時,其實指的是Hibernate中的session,而以后會將Http Sesion對象稱為用戶session。

Session Factory接口:Session Factory接口負責初始化Hibernate。它充當數據存儲源的,并負責創建Session對象。這里用到了工廠模式。需要注意的是Session Factory并不是輕量級的,因為一般情況下,一個項目通常只需要一個Session Factory就夠,當需要操作多個數據庫時,可以為每個數據庫指定一個Session Factory。

Configuration接口:Configuration接口負責配置并啟動Hibernate,創建Session Factory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創建Session Factory對象。

Transaction接口:Transaction接口負責事務相關的操作。它是可選的,開發人員也可以設計編寫自己的底層事務處理代碼。

Query和Criteria接口:Query和Criteria接口負責執行各種數據庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。

四、 Spring技術

Spring是一個開源框架,它由Rod Johnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。它能解決企業應用開發的復雜性,使用基本的JavaBean代替EJB,并提供了更多的企業應用功能。Spring有如下特點:

a.輕量――從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴于Spring的特定類。

b.控制反轉――Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。你可以認為IoC與JNDI相反――不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。

c.面向切面――Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該做的――完成業務邏輯――僅此而已。它們并不負責(甚至是意識)其它的系統級關注點,例如日志或事務支持。

d.容器――Spring包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建――基于一個可配置原型(prototype),你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例――以及它們是如何相互關聯的。然而,Spring不應該被混同于傳統的重量級的EJB容器,它們經常是龐大與笨重的,難以使用。

e.框架――Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼它們也為Spring中的各種模塊提供了基礎支持。

五、MVC技術

MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。

1.視圖

視圖是用戶看到并與之交互的界面。對老式的Web應用程序來說,視圖就是由JSP元素組成的界面,在新式的Web應用程序中,JSP依舊在視圖中扮演著重要的角色,但一些新的技術已層出不窮,它們包括Macromedia Flash和象XJSP,XML/XSL,WML等一些標識語言和Web services.

如何處理應用程序的界面變得越來越有挑戰性。MVC一個大的好處是它能為你的應用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發生,不管這些數據是聯機存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數據并允許用戶操縱的方式。

2.模型

模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用象EJBs和ColdFusion Components這樣的構件對象來處理數據庫。被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能為多個視圖提供數據。由于應用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。

3.控制器

控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發送JSP表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調用哪個模型構件去處理請求,然后確定用哪個視圖來顯示模型處理返回的數據。

現在我們總結MVC的處理過程,首先控制器接收用戶的請求,并決定應該調用哪個模型來進行處理,然后模型用業務邏輯來處理用戶的請求并返回數據,最后控制器用相應的視圖格式化模型返回的數據,并通過表示層呈現給用戶。

參考文獻:

第10篇

關鍵詞:J2EE;框架技術;公眾信息服務;電子政務

中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2010)21-5892-02

在網絡信息技術高速發展的大環境下,各類信息以海量的形式充斥在我們的生活、工作及學習周圍,但由于這些信息的重復性,數據的準確度不高,社會公眾很難準確、快捷的獲取個人想要得到的本地數據和信息,對人們的網絡生活造成極大的負面影響。因而由政府牽頭整合政府、市場、企業等多方面資源,共同建設一個統一、開放、跨平臺、系統結構層次清晰的公共信息服務平臺,并以靈活多樣的形式為本地公眾提供準確、權威的信息服務已經成為當地互聯網應用的的一種趨勢和重要需求。

基于J2EE技術標準體系的框架技術的特點使其能夠快速、有效地支持各類大中型Web應用建設,同時在大中型Web應用中,必然存在多個層次,需要使用幾個不同的框架來支持。那么如何整合各層框架,讓每個層在一種松耦合的方式下互相協作,這是在這一類型項目的建設中必須解決的一個實際問題。本文將介紹一個以Spring框架為核心,結合Struts及Hibernate框架的一種高效構建大中型Web應用的框架整合理論,并在此理論的基礎上闡述了城市公眾信息服務平臺應用的設計思路和關鍵實現技術。

1 J2EE框架技術特點

目前隨著軟件開發技術的發展,可重用、可移植、易擴展,而且是經過良好測試具有較高穩定性及可用性的軟件產品,越來越受到技術人員的青睞。因為這意味著技術人又可以有充裕的時間用來分析和構建業務邏輯,而不必花費太多的經歷在繁雜的代碼工程上面。于是人們將相同類型問題的解決途徑進行抽象,抽取成一個具有標準意義的應用框架,而J2EE正是這樣的一個框架。

1.1 Spring框架

Spirng框架是一個以控制反轉(IOC)模式和面向方面編程(AOP)思想為核心的輕量級框架,主要用于對中間層業務組件的管理。常用的中間件解決方案EJB是一種重量級的容器,主要有以下缺點:必須實現EJB的接口,對業務邏輯組件侵入性很大;應用依賴于EJB容器,不能單獨運行,另外啟動時間長,測試復雜、配置很困難,而Spring則不然。

首先,Spring是一種輕量級的框架,是基于組件化、模塊化的結構。它有分層的體系結構,因而針對Spirng開發的組件不需要任何外部庫,也可以選擇某個模塊獨立使用,從而避免了EJB復雜、啟動時間長的缺點。

其次,Spring也是一個IOC容器。IOC模式是Spring的核心,它的本質是由容器控制業務對象的協作關系,而非傳統的用程序編碼在業務對象直接控制,控制權由程序代碼轉移到外部容器。通過IOC模式可以很容易地管理和替換業務對象。

另外,Spring又是比較全面的框架,它并沒有象EJB一樣從底層開始全面實現J2EE的功能模塊。Spring提供了大多數的層次功能模塊,但它并不是從頭開始實現的,它通過對其它框架技術的支持來實現各層功能。它包括SpringCore核心層、MVC模塊、SpringDAO、SpringORM、上下文控制、Web表示層、面向方面編程7個功能模塊。

1.2 Hibernate框架

Hibernate是一種專業的對象關系映射(O/R)工具,通過Hibernate的O/R映射配置,可以用對象化的方式處理數據庫表中的記錄。Hibernate通過Properties文件建立數據庫連接,通過映射文件(.hbm.xm1)將數據庫表映射為Java類,表中的每條記錄對應為類的實例,而數據列值映射為實例的屬性。Hibernate將這些實例以持久對象(Persistentobject)形式向中間業務層提供服務。

1.3 Struts框架

Sturts框架很好地實現了MVC設計模式的理念。它通過ActionServlet實現對象的集中控制,并利用Struts-conifg.xml文件,巧妙地實現了視圖、控制、模型層次之間的分離,使得頁面設計與改變真正做到與代碼無關。

2 整合框架的Web應用架構

通過對上述各種框架技術的介紹可知,如果單獨以上任何一個框架技術來實現大中型的Web應用,會存在效率不高,解決問題不徹底等問題,而以Spring框架為核心,充分利用其開放性、模塊化以及對業務對象、事務管理等特點,整合Sturts、Hibernate框架,可以構造出五層Web應用架構,分別為:客戶層、Web層、業務層、持久層、企業資源層5個層次。整合出的Web應用架構如圖1所示。

在客戶層,由JSP頁面負責傳送請求(Request)和接收響應(Response)。在Web層,Sturts根據ActionServlet接受到的請求,指派對應的Action類。Action對象中的execute方法調用模型中的業務組件,決定“做什么”。在業務層,管理業務組件的SpringIOC容器負責向Action提供業務模型(Mode1)組件,決定“怎么做”和該組件的協作對象數據處理(DAO)組件完成業務邏輯,并提供事務處理、緩沖池等容器組件提升系統性能和保證數據完整性。業務層通過DAO數據訪問對象,向持久層請求數據處理。在持久層,依賴于Hibernate的對象關系映射和對象化的查詢語言操作,通過Hibernate的會話,處理DAO組件請求的數據,并返回處理結果。

對照基于EJB的一般Web應用結構,整合框架的Web應用架構中通過Spring提供的輕量級業務組件的管理和IOC容器,實現了對EJB技術的替代和更好的組件重用性,使業務組件間的協作更加松耦合。同時利用Spirng的開放性、模塊化以及對Hibernate良好支持等特點,通過引入專門的O/R映射框架Hibernate實現了對關系數據庫的對象化,隱藏了數據庫的底層細節,便于開發者以統一的面向對象思想來開發應用。另外通過Sturts的MVC模式,開發清晰明確的業務流程和用戶交互,實現表現邏輯和業務邏輯的解耦,擺脫了原有的開發模式帶來的高耦合性。通過框架的整合不僅集成了各種框架的優勢,同時也構造了層次清晰、結構合理的5層Web應用架構。

3 主要實現技術

本架構可采用Tomcat5.0作為Web服務器,Struts框架為1.2版本,Spring框架為1.4版,Hibernate框架為3.0版,根據上述整合框架的Web應用架構來實現平臺的結構。

3.1 視圖層頁面設計

根據前端用戶靈活的信息瀏覽需求,同時又要適應頻道運作單位自己管理頻道模塊的需求,因此,頁面設計改動不能影響到其它業務邏輯。在實現中通過Sturts的自定義標簽,結合MVC模式,實現頁面與業務邏輯分離,做到JSP頁面不包含Java代碼。

3.2 Web層請求響應控制

通過struts-conifg.xml配置文件把各個瀏覽頁面都對應到每個Action,當頁面發出請求后,根據struts-config.xml的配置文件中對應的Action部署,由Action對象調用框架內的業務層組件。

3.3 業務對象的IOC方式管理

Web層的Action只是決定“做什么”,并沒有實現“怎么做”,具體的業務邏輯由業務層的業務組件來完成。在應用的實現中,把每一個業務組件包按接口類和實現類分開編碼,當需要互相協作時,在代碼層只要直接引用協作對象的接口類就可以了。協作對象的實現類統一由Spring容器根據配置文件的說明進行注入。可以分為3個服務組件:信息組件、信息審核組件、信息狀態記錄組件,在Spring的IOC機制下,利用配置文件和基于接口與實現分離的編碼方式可以很好地實現這個組件之間的松耦合協作,減輕了應用對容器的依賴。

3.4 利用Spring框架實現事務管理及與持久層會話

通過Spring配置文件可以直接實現數據源、會話工廠、事務管理和數據訪問對象的配置,數據訪問對象根據上述Spring配置可以直接和持久層連接,這樣在實現有中不用考慮這些功能的具體實現。Hibernate通過轉換工具把各類信息保存表轉換成相應的對象文件和.xml映射文件,Spring中的數據訪問對象,直接對對象文件進行操作,由Hibernate完成數據的持久化。

4 結束語

在Web應用開發的實踐中,如何根據項目建設需要,選擇一個或多個框架來構建合適的Web應用體系結構是軟件工程的首要任務。本文提出的整合框架的Web應用架構,獨立了顯示模塊.輕量化了業務組件,對象化了數據庫數據,使得顯示模塊、業務邏輯模塊以及數據處理模塊可以通過外部文件的簡單配置,高效地重用到其他應用系統中去,大大提高了系統的開方性和開發效率,為開發電子政務、電子商務等類似應用提供了參考模式。

參考文獻:

[1] (美)Stephanie Bodoff.J2EE 1.4標準教材[M].2版.北京:電子工業出版社,2000.

第11篇

關鍵詞:Java EE Struts 2 Spring Hibernate SSH

一、SSH框架

2006年,Sun公司提出了Java EE(Java Platform,Enterprise Edition)的概念,并同步出現了兩個主要規范JSF 1.2和EJB 3.0。它是能夠為我們幫助開發和部署可移植、健壯、可伸縮且安全的服務器端 Java 應用程序,提供 Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程序。

隨著經典Java EE平臺廣泛采用,在企業級應用開發領域,并沒有在Sun所推薦的以EJB為核心的Java EE應用架構中看到其所承諾的效果,實際情況恰恰相反,EJB在大部分實際應用中帶來的壞處遠遠超過了它帶來的好處。

于是,Java EE社區全面開始了對EJB的批評與反思,整個Java EE業界開始尋求一種更加簡單、更加方便使用的輕量級Java EE架構。最終,Struts 2、Spring、 Hibernate三個開源框架的組合(通常被稱作SSH)以能夠運行在普通Web容器中而不需要EJB容器的支持,且一樣具有穩定的性能和極高的可擴展性、可維護性,成為目前最為流行、運用最廣的輕量級Java EE平臺。

(一) Struts 2

早在2000年5月,Craig R. McClanahan就向Java社區提交了一個Web框架,這就是后來的Struts。2001年6月,Struts 1.0正式。2006年,WebWork與Struts這兩個優秀的Java Web框架的開發團隊,決定合作開發一個新的、整合了WebWork與Struts的優點,并且更加優雅、擴展性更強的框架,命名為“Struts 2”,原先Struts的1.x版本產品稱為“Struts 1”。

(二) Spring

Spring框架由Rod Johnson開發,2003年了Spring框架的第一個版本。Spring框架的核心是控制翻轉IoC(Inversion of Control)/依賴注入DI(Dependence Injection)和面向切面AOP(Aspect-Oriented Programming)機制。

(三)Hibernate

在Java EE應用程序中,采用面向對象編程,用對象描述實體;而數據源層往往是關系型數據庫系統,用二維表存儲數據。為解決面向對象的應用程序和面向關系的數據庫系統之間的“阻抗不匹配”,需要ORM(Object-Relational Mapping)把Java EE應用程序中的對象映射到關系型數據庫中的二維表,用于實現實體對象的持久化并封裝數據訪問的細節。實現ORM功能的組建有很多,其中JBoss組織的Hibernate是目前最常被使用的組件。Hibernate第一個正式版本于2011年末,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。

二、ERP權限審核系統

(一)功能需求

技術方面:考慮到目前局域網比較完善,以及今后維護方便,系統應采用C/S(瀏覽器/服務器)架構。

功能方面:實現事務碼、通用角色、本地角色、ERP用戶、不相容事務代碼的增加、刪除、修改、查詢功能。通用角色、本地角色、ERP用戶三個層級不相容情況審核。

(二)系統設計

系統功能設計分為四個層級:

領域模型:建立類Tcode、CommonRole、LocalRole、UserInfo、Incompatibility,同時,將上述類的共有字段提煉出來,建立其父類BaseObject。

持久層:建立接口IBaseDAO,實現操作數據庫的增加、刪除、修改、查詢操作,并通過泛型參數,實現多元化的對象操作。

業務層:建立接口IBaseService,實現操作持久層的增加、刪除、修改、查詢操作,通過泛型參數,實現多元化的對象操作。

表現層:由兩部分構成,一部分用于收集信息和展示處理結果,包括添加(save)、修改(update)、查詢(query)、更改成功(success)、查詢結果(view)5個jsp頁面;另一部分是對收集信息和處理結果進行封裝的action,包括類TcodeAction、CommonRoleAction、LocalRoleAction、UserInfoAction、IncompatibilityAction、CheckTcodeBase,同時,將上述前5類的共用的功能提煉出來,建立其父類BaseAction。

(三)系統實現

1、開發環境

Eclipse 3.7.1 + Java EE SDK 1.7 + Struts 2.2.1 + Spring 3.0.5 + Hibernate 3.4.0 + MySQL 5.5.20 + Tomcat 7.0。

2、搭建SSH集成環境

建立名為serp的Java Web項目,建立三個業務層和領域模型的包,將所需的jar包拷貝到WebContent/WEB-INF/lib下,并對web.xml進行配置,增加對Struts2和Spring的支持。限于篇幅,該處及后面的具體代碼未詳細列出,如有需要,可向作者獲取。

3、領域模型的實現

該部分內容位于model包下,實現領域模型Java類,與數據庫的表建立映射。BaseObject類包含共性的id、idName、idDescription等屬性及其setter和getter方法,并覆寫hashCode、equals、toString、compareTo方法。CommonRole類包含個性的roleName、roleTitle、position、tcodes等屬性及其setter和getter方法。映射文件CommonRole.hbm.xml建立數據庫表與Java類的映射。

4、持久層的實現

該層將接口類和實現類相分離,使其實現方式可以隨時更改為其它方式,增加了維護靈活性。IBaseDAO接口定義saveObject、updateObject、deleteObject、queryObject等方法。BaseDAOHibernateImpl實現IBaseDAO接口。

5、業務層的實現

該層同樣將接口類和實現類相分離,使其實現方式可以隨時更改為其它方式,增加了維護靈活性。IBaseService接口定義saveObject、updateObject、deleteObject、queryObject等方法。BaseServiceSpringImpl實現IBaseService接口。

6、表現層的實現

(1)jsp頁面的實現

該部分主要用于實現信息的收集及處理結果的展示。globalMessages.properties用于頁面顯示內容的定制,增加其適用性。首頁index.jsp用于顯示具體的功能模塊,包括事務代碼、通用角色、本地角色、ERP用戶、不相容事務碼的信息維護和通用角色、本地角色、ERP用戶的不相容審核。通用角色清單顯示頁面viewcommonrole.jsp用于顯示查詢到的通用角色清單。

(2)action的實現

該部分主要用于對收集數據及處理結果的封裝。Stuts.xml用于實現處理類的調度。applicationContext.xml用于具體處理的實現。BaseAction類包含共性的operateFlag、successString、opearateResult、baseService等屬性及其setter和getter方法,并增加generateSql、operate方法用于處理查詢語句的處理。CommonRoleAction類包含個性的commonRole、commonRoles等屬性及其setter和getter方法,并覆寫execute方法。

(四)部署運行

在Eclipse中部署程序,然后在瀏覽器中輸入訪問頁面,即可看到程序效果,實現ERP權限的在線管理。

(五)總結

在實際的Java EE平臺中,使用SSH2(Struts 2 + Spring + Hibernate)框架整合開發是最流行的開發平臺,這種開發平臺也被稱為輕量級Java EE企業應用平臺。與經典的基于EJB核心的Java EE應用相比,基于SSH2的輕量級Java EE應用簡化了經典的Java EE應用的難度,在保留經典Java EE應用架構、高度可擴展性、高度可維護性的基礎上,降低了Java EE應用的開發、部署成本,具備了快速、高效、易于使用的特點。本文通過研究Struts 2、Spring和Hibernate框架的體系結構,探索整合SSH開發了一個B/S多層架構的ERP權限管理系統,驗證了輕量級Java EE在信息系統開發中的可行性,為企業深化ERP權限管理,開發高效率、低成本的應用系統提供了有效途徑。

參考文獻:

[1]楊磊.新手學Java Web開發.北京:北京希望電子出版社,2010.

[2]李剛.輕量級Java EE企業應用實戰(第3版)——Struts 2+Spring 3+Hibernate整合開發.北京:電子工業出版社,2012.

[3]The Apache Software Foundation.Struts 2.http://.

第12篇

對于各企事業單位,推出符合民眾需求的產品和業務至關重要,是各個單位業務的最終實現目標。如何推出符合民眾需求的產品和業務,調查問卷必不可少。通過調查問卷,我們可以了解用戶的需求,以及根據用戶的需求進一步完善。因此,建立完善的調查問卷系統是各企事業工作推進的保證。

目前,各企事業單位的調查問卷大都是采用傳統的人工方式,但是采用人工方式容易出問題。一是用戶填寫調查問卷的時候,容易書寫錯誤,造成紙張浪費,同時導致有效調查數據減少;二是每年的調查問卷會浪費大量的空間存放;三是人工方式無法精確進行調查,數據不夠準確。

因此,開發在線的調查問卷系統刻不容緩。調查寶是一個簡單易用的在線問卷調查系統,通過這個系統用戶可以輕松地進行在線調查問卷的設計、調查數據的收集,并進行調查結果分析、生成調研報告。

調查寶界面友好、使用簡捷,每個人都可以輕易地開展各種調查活動。與傳統調查方式和其它調查網站或調查系統相比,調查寶具有快捷、易用、低成本等明顯優勢。調查寶是一個web系統,利用互聯網的優勢, 利用網絡的便捷對目標群體進行調查,搜集有用數據后進行統計分析,挖掘數據的潛在價值。

2 相關技術介紹

2.1 Web應用系統架構

目前Web應用系統廣泛采用MVC的設計模式,該模式是目前廣泛流行的軟件設計模式。MVC設計模式采用三層結構,即表示層、業務層和數據存取層。表示層提供與用戶交互的界面、收集和顯示數據;業務層提供系統的業務和功能代碼;數據存取層負責完成數據庫操作。這種系統架構極大地提高了軟件系統的可擴展性和可復用性,同時優化了模塊之間的耦合,改善了系統的安全性。

2.2 Struts2框架

struts1和webwork的技術兩者進行合并產生了全新的Struts2框架,Struts2框架主要用于開發Web應用程序的表現層,核心就是struts2控制器Filter Dispatcher和action。在開發大型可擴展的Web系統時,為了減輕軟件開發過程中的組件間的控制和調用工作,以及加快開發進度,我們常常使用Struts框架。該文采用Struts2作為表現層框架,其結構如下圖所示。

2.3 Spring框架

Spring是以控制反轉(IOC)和面向切面(AOP)為基礎的,一種輕量級的框架。其中,IOC機制實現了由Spring框架完成創建被調用者,然后將被調用者注入到調用者,這就是“依賴注入”;AOP機制使用切面技術將非業務工作織入到主要業務過程中,實現了多線程。以控制反轉和面向切面為核心的Spring框架可以有效地緩解企業級應用程序開發的復雜性。該文采用Spring作為業務邏輯層框架,其結構如下圖所示。

2.4 Hibernate框架

之前,我們需要訪問數據庫時需要寫大量的代碼,那么Hibernate框架是一個ORM層的框架,封裝了JDBC,通過編寫映射文件完成對象關系映射,在業務層以面向對象的方式進行編程,不需要考慮數據保存形式,可以很好的實現數據的持久化。Hibernate是一個開放源代碼的、輕量級框架。

該文采用Hibernate作為業務邏輯層框架,其結構如下圖所示。

2.5 Ajax

隨著web2.0的出現和發展,Ajax越來越受到關注。Ajax采用異步機制,促使頁面局部刷新,提高了用戶操作頁面的體驗,Ajax減少了過多的web頁面刷新,提高了用戶的可用性。網上投票系統中使用Ajax實現了攔截用戶的重復登錄。

3 網上投票系統系統需求分析

通過與用戶的溝通和交流后,明確了系統的所需功能。該文綜合分析網上投票系統的業務領域知識,從而詳細描述軟件功能需求,構建軟件需求可行方案,為軟件設計工作提供指南和依據。

1)用戶登錄和注冊。管理員使用用戶名和密碼登錄,投票用戶投票前需要注冊普通用戶,登錄系統后方可進行投票操作,和查看投票結果。管理員登錄后可以新投票,維護投票,查詢投票結果等。

2)新投票。管理員根據實際需求可以發起投票,創建投票問題和選項。注意投票選項至少有兩項。

3)投票。系統用戶注冊后可以對已經完成的投票問題進行有選擇的投票,即用戶選擇適合的選項提交,投票完成后系統會記錄投票的結果。

4)查看投票結果。用戶投票完成后,管理員可以查看每個投票主題的得票數。

5)維護投票。管理員登錄系統后可以對投票問題及其選項進行修改。

調查寶在線投票系統主要包括管理員模塊和普通用戶模塊,其具體功能模塊圖如下圖所示:

4 網上投票系統設計

4.1 架構設計

系統采用S2SH框架技術和Ajax技術實現,使得各個模塊之間實現了松耦合,完美地銜接起來。該架構使用Strut2作為表現層和控制層主要框架,數據持久層使用Hibernate框架,而Spring框架主要負責業務邏輯層。

S2SH框架如下圖所示:

4.1.1 視圖層

Struts2框架用于管理視圖層,維護用戶交互、JSP頁面跳轉、表單以及數據驗證。本系統采用Struts2框架后,當用戶請求訪問的時候,ActionServlet會負責接收用戶請求,然后查詢配置文件找到相應的Action控制處理請求;Action控制器將領域對象提交給業務邏輯層服務組件進行處理,處理完畢后,再將處理結果返回給Action控制器并將結果顯示在相應的視圖上或者跳轉到另一個JSP頁面。同時使用Ajax異步處理機制實現網頁的局部刷新,本系統沒有采用傳統的攔截器實現提示用戶的重復登錄,而是采用Ajax實現了提示用戶的重復登錄,同時使用Ajax的AoP技術實現在主要投票業務過程中織入日志。

4.1.2 業務邏輯層

網上投票系統的業務邏輯層主要由Spring框架完成,業務邏輯層圍繞用戶的具體業務,比如管理員發起投票主題、管理員進行查詢投票結果、普通用戶參與投票等,將具體業務封裝在service中,由service調用Dao中的方法,這里就用到了Spring框架的IoC,即在調用者service中注入被調用者Dao。Spring框架實現了層間的松耦合,利于日后的維護和擴展。

4.1.3 數據持久化層

網上投票系統的數據持久化層由Hibernate框架完成,實現了數據關系表和對象之間的映射。本系統中的Dao中具體的對數據的操作均采用HQL語句完成。

網上投票系統將S2SH框架技術運用到系統架構建設中,保證了系統總體框架的穩定性,降低了各層間的耦合度,提高了系統業 務處理效率。

4.2 構建系統領域模型

軟件開發中的領域模型對應現實世界中的對象,是對現實生活中具體對象的抽象。只有將具體對象抽象成領域模型,并理清其關系,才可順利地進行系統開發,所以,構建系統領域模型至關重要。根據調查寶在線投票系統的需求以及功能,我們抽象出了該系統的領域模型,如下圖所示:

5 總結與展望

文章詳細闡述了基于S2SH框架的“網上投票系統”的設計原則與實現的方法。通過與客戶的交流和溝通,形成了詳細的需求文檔,進一步分析了系統的功能模塊,構建系統領域模型。系統采用當下最為流行的web開發框架S2SH,并結合Ajax有效地提高了用戶的體驗。

通過總結本系統的開發與研究工作,網上投票系統還需進一步研究:Hibernate框架關聯數據的完全更新。

參考文獻:

.計算機技術與發展, 2009(8).

[2] 繆勇.基于S2SH框架的Ajax框架的研究[J].電腦知識與技術, 2009(26).

相關文章
主站蜘蛛池模板: 玛纳斯县| 苍溪县| 德格县| 中卫市| 商水县| 黄大仙区| 千阳县| 伊川县| 北川| 巨野县| 六盘水市| 扎兰屯市| 丹寨县| 广平县| 嘉定区| 南川市| 花莲市| 包头市| 嘉兴市| 微山县| 醴陵市| 岳阳县| 宁德市| 河西区| 四子王旗| 宁安市| 遂溪县| 玉树县| 恭城| 高雄市| 陆川县| 开平市| 临清市| 蕲春县| 张家港市| 南溪县| 弋阳县| 乌兰察布市| 黎川县| 青龙| 临澧县|