在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

首頁(yè) > 文章中心 > spring框架

spring框架

前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇spring框架范文,相信會(huì)為您的寫作帶來(lái)幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

spring框架

spring框架范文第1篇

關(guān)鍵詞 spring; J2EE; 控制反轉(zhuǎn); 事務(wù)處理

引 言

在軟件開發(fā)中出現(xiàn)過各種各樣的框架,開源軟件的興起,使得各種各樣的框架紛紛出現(xiàn),例如,Apache組織下就擁有諸多的框架類產(chǎn)品。框架就是一組協(xié)同工作的類,它們?yōu)樘囟愋偷能浖?gòu)筑了一個(gè)可重用的設(shè)計(jì)。然而,傳統(tǒng)的框架使得應(yīng)用程序組件過分依賴于框架中的類,這種耦合度的提高降低了組件的復(fù)用性。Spring框架的出現(xiàn),使得組件之間更松散的耦合成為了可能。

Spring框架簡(jiǎn)介

Spring框架是一個(gè)2003年2月才出現(xiàn)的開源項(xiàng)目,該開源項(xiàng)目起源自Rod Johnson在2002年末出版的《Expert One-on-One J2EE Design and Development》一書中的基礎(chǔ)性代碼。在該書中,Rod Johnson倡導(dǎo)J2EE實(shí)用主義的設(shè)計(jì)思想,而Spring框架正是這一思想的更全面和具體的實(shí)現(xiàn)。Spring框架由一個(gè)容器,一個(gè)配置和組織組件的框架,和一組內(nèi)置的為事務(wù)、持久化和Web用戶接口提供的服務(wù)組成。作為一種輕量級(jí)的J2EE框架,Spring提供了一種有效的方式來(lái)建立和組織J2EE應(yīng)用程序。

1、Spring特性

IoC(Inversion of Control;控制反轉(zhuǎn));又稱DI(Dependency Injection;依賴注入);是面向?qū)ο箢I(lǐng)域新興的編程思想;也是Spring的精髓所在。簡(jiǎn)單地說(shuō);IoC就是指程序之間的關(guān)系由容器來(lái)控制;而不是傳統(tǒng)實(shí)現(xiàn)中由程序代碼直接操控。這也就是所謂“控制反轉(zhuǎn)”的概念所在:控制權(quán)由應(yīng)用代碼轉(zhuǎn)到外部容器,控制權(quán)的轉(zhuǎn)移,也就是所謂的反轉(zhuǎn)。IoC將控制創(chuàng)建的職責(zé)搬進(jìn)了框架中;并把它從應(yīng)用代碼脫離開來(lái)。當(dāng)使用Spring的IoC容器時(shí)只需指出組件需要的對(duì)象,在運(yùn)行時(shí)Spring的IoC容器會(huì)根據(jù)XML配置數(shù)據(jù)提供給它。

Spring IoC,借助于依賴注入設(shè)計(jì)模式,使得開發(fā)者不用理會(huì)對(duì)象自身的生命周期極其關(guān)系,而且能夠改善開發(fā)者對(duì)模式的使用。對(duì)于一個(gè)對(duì)象的管理不是什么困難,難就難在對(duì)整個(gè)對(duì)象群的管理。依賴注入可以讓容器管理對(duì)象,即“Don’t call me, I will call you”。這樣對(duì)象本身的生命周期以及對(duì)象之間的關(guān)系就不再讓開發(fā)者費(fèi)神了。

Spring AOP,借助于Spring實(shí)現(xiàn)攔截器,開發(fā)者能夠?qū)崿F(xiàn)以聲名方式使用企業(yè)級(jí)服務(wù),比如安全、事務(wù)服務(wù)。AOP 合理的補(bǔ)充了OOP,借助于Spring AOP,開發(fā)者能夠高效的使用J2EE服務(wù)。

Spring服務(wù)抽象,借助于各種J2EE API抽象,使得開發(fā)者能夠一致地使用J2EE 技術(shù),而不管具體是使用什么J2EE API,借助于Spring服務(wù)抽象,使代碼大大減少,滿足“更少代碼,更少BUG”的軟件設(shè)計(jì)原則。

Spring IoC+Spring AOP+Spring服務(wù)抽象,一起形成Spring,這樣一個(gè)有機(jī)體,使構(gòu)建輕量級(jí)J2EE成為可能。

Spring提供的事務(wù)管理

Spring提供的事務(wù)管理可以分為兩類:編程式的和聲明式的。編程式的,比較靈活,但是代碼量大,存在重復(fù)的代碼比較多;聲明式的比編程式的更靈活方便。

1、傳統(tǒng)使用JDBC的事務(wù)管理

以往使用JDBC進(jìn)行數(shù)據(jù)操作,使用DataSource,從數(shù)據(jù)源中得到Connection,我們知道數(shù)據(jù)源是線程安全的,而連接不是線程安全的,所以對(duì)每個(gè)請(qǐng)求都是從數(shù)據(jù)源中重新取出一個(gè)連接。一般的數(shù)據(jù)源由容器進(jìn)行管理,包括連接池。例如TOMCAT,WEBSPHERE,WEBLOGIC等這些J2EE商業(yè)容器都提供了這個(gè)功能。

以往的我們使用JDBC在寫代碼時(shí),事務(wù)管理可能會(huì)是這樣:

Connection conn = null;

try{

conn = DBConnectionFactory.getConnection;

conn.setAutoCommit(false);

//do something

conn.commit(); //commit transcation

}catch(Exception e){

conn.rollback();

}

finally{

try{

conn.close();

} catch(SQLException se){ //do sth.}

//close ResultSet,PreparedStatement,Connection

//notice:Maybe ocurr Exception when u close rs,pstmt,conn

}

按照以往的思路來(lái)寫代碼,代碼量比較長(zhǎng),而且容易疏忽,忘掉一些try/catch,引發(fā)一些異常無(wú)法catch,雖然有時(shí)候我們會(huì)寫DBTool類,來(lái)關(guān)閉這些資源,并且保證在關(guān)閉這些資源時(shí),不向外拋異常,但是這樣做會(huì)導(dǎo)致額外的麻煩。

2、Spring提供的編程式的事務(wù)處理

Spring提供了幾個(gè)關(guān)于事務(wù)處理的類:TransactionDefinition //事務(wù)屬性定義

TranscationStatus //代表了當(dāng)前的事務(wù),可以提交,回滾。

PlatformTransactionManager這個(gè)是spring提供的用于管理事務(wù)的基礎(chǔ)接口,其下有一個(gè)實(shí)現(xiàn)的抽象類AbstractPlatformTransactionManager,我們使用的事務(wù)管理類例如DataSourceTransactionManager等都是這個(gè)類的子類。

我們使用編程式的事務(wù)管理流程可能如下:

(1) 聲明數(shù)據(jù)源。

(2) 聲明一個(gè)事務(wù)管理類,例如:DataSourceTransactionManager,HibernateTransactionManger,JTATransactionManager等

(3) 在我們的代碼中加入事務(wù)處理代碼:

TransactionDefinition td = new TransactionDefinition();

TransactionStatus ts = transactionManager.getTransaction(td);

try{

//do sth

transactionManager.commit(ts);

}catch(Exception e){transactionManager.rollback(ts);}

使用Spring提供的事務(wù)模板TransactionTemplate:

void add()

{

transactionTemplate.execute( new TransactionCallback(){

pulic Object doInTransaction(TransactionStatus ts)

{ //do sth}

}

}

TransactionTemplate也是為我們省去了部分事務(wù)提交、回滾代碼;定義事務(wù)模板時(shí),需注入事務(wù)管理對(duì)象。

3、Spring聲明式事務(wù)處理

Spring聲明式事務(wù)處理也主要使用了IoC,AOP思想,提供了TransactionInterceptor攔截器和常用的類TransactionProxyFactoryBean,可以直接對(duì)組件進(jìn)行事務(wù)。

使用TransactionInterceptor的步驟:

(1)定義數(shù)據(jù)源,事務(wù)管理類

(2)定義事務(wù)攔截器,例如:

<bean id = "transactionInterceptor"

class="org.springframework.transaction.interceptor.TransactionInterceptor">

<property name="transactionManager"><ref bean="transactionManager"/></property>

<property name="transactionAttributeSource">

<value>

com.test.UserManager.*r=PROPAGATION_REQUIRED

</value>

</property>

</bean>

(3)為組件聲明一個(gè)類:ProxyFactoryBean

<bean id="userManager" class="org.springframework.aop.framework.ProxyFactoryBean">

<property name="proxyInterfaces"><value>com.test.UserManager</value></property>

<property name="interceptorNames">

<list>

<idref local="transactionInterceptor"/>

</list>

</property>

</bean>

使用TransactionProxyFactoryBean:

<bean id="userManager"

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager"><ref bean="transactionManager"/></property>

<property name="target"><ref local="userManagerTarget"/></property>

<property name="transactionAttributes">

<props>

<prop key="insert*">PROPAGATION_REQUIRED</prop>

<prop key="update*">PROPAGATION_REQUIRED</prop>

<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>

TransactionProxyFactoryBean只是為組件的事務(wù),如果我們要給組件添加一些業(yè)務(wù)方面的驗(yàn)證等,可以使用TransactionTemplate加攔截器方式,為組件添加多個(gè)攔截器,spring AOP中提供了三類Advice,即前增強(qiáng),后增強(qiáng),拋出異常時(shí)的增強(qiáng),可以靈活使用。

spring框架范文第2篇

關(guān)鍵詞:Spring MVC框架;Web登錄系統(tǒng);B/S架構(gòu);session對(duì)象

1 概述

隨著世界經(jīng)濟(jì)的繁榮和科技的迅猛發(fā)展,信息化的程度越來(lái)越高,各種軟件相繼出現(xiàn)。大批量種類繁多的軟件雖然提高了信息處理的效率,但是安全方面的隱患也日益突出。用戶想要進(jìn)入到不同的應(yīng)用軟件和服務(wù)系統(tǒng)時(shí)都必須進(jìn)行登錄認(rèn)證,隨之而來(lái)的遺忘密碼、黑客攻擊、密碼泄露等問題,都將嚴(yán)重干擾到業(yè)務(wù)運(yùn)作。在這種情況下,一種安全可靠的用戶登錄模塊就顯得必不可少。

基于這種情況,該文研究了如何利用Spring MVC框架開發(fā)一款安全、靈活的Web登錄模塊。系統(tǒng)的任何用戶操作界面都可以提供登錄入口,提示用戶進(jìn)行登錄,通過認(rèn)證后,合法用戶就可以使用他相應(yīng)的權(quán)限功能。

2 Spring MVC框架概述

Spring是分層的Java SE/EE應(yīng)用一站式的輕量級(jí)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的。Spring框架提供了構(gòu)建Web應(yīng)用程序的全功能 MVC 模塊。在Spring的MVC中,支持各種視圖技術(shù),例如JSP、Velocity、Tiles等。Spring MVC分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧@種分離讓它們更容易進(jìn)行定制。

Spring MVC的角色劃分非常清晰,各組件的功能單一,很好地達(dá)到了高內(nèi)聚低耦合的效果。Spring MVC相當(dāng)靈活,且可以擴(kuò)展,其MVC框架是圍繞 DispatcherServlet這個(gè)核心展開的。核心控制器的作用就是截獲請(qǐng)求,并將其分發(fā)到相應(yīng)的業(yè)務(wù)控制器中,由業(yè)務(wù)控制器調(diào)用業(yè)務(wù)處理方法處理業(yè)務(wù)邏輯,返回一個(gè)模型和視圖對(duì)象,核心控制器再根據(jù)此對(duì)象找到視圖顯示出處理結(jié)果。

3 登錄模塊的設(shè)計(jì)與實(shí)現(xiàn)

本登錄模塊采用B/S的三層結(jié)構(gòu)模式,分為服務(wù)器、用戶和數(shù)據(jù)庫(kù)三個(gè)部分??蛻舳伺c服務(wù)器之間采用HTTP協(xié)議進(jìn)行通信,Web服務(wù)器采用Tomcat6.0,數(shù)據(jù)庫(kù)服務(wù)器采用Oracle10.0.2。在用戶登錄模塊的開發(fā)過程中,提供對(duì)身份認(rèn)證、權(quán)限分配等有效的安全策略,來(lái)實(shí)現(xiàn)用戶的驗(yàn)證與登錄,在沒有得到系統(tǒng)授權(quán)的前提下是無(wú)權(quán)對(duì)文檔進(jìn)行瀏覽和管理的。

3.1 總體設(shè)計(jì)

用戶登錄模塊按照不同的人員職責(zé),提供不同的登錄界面,具體包括系統(tǒng)管理員、管理員、游客等登錄界面。有游客,管理員,身份證,電話號(hào)碼+密碼等多種登錄方式。

登錄模塊采用基于角色的身份認(rèn)證技術(shù),根據(jù)不同的用戶角色,提供不同的登錄選項(xiàng),分配不同的使用權(quán)限。根據(jù)實(shí)際情況定義了三種角色:超級(jí)管理員、管理員、注冊(cè)用戶,通過登錄界面確認(rèn)用戶的身份,再根據(jù)不同的用戶類型確定其相應(yīng)的操作權(quán)限。

其中,超級(jí)管理員具有對(duì)角色、權(quán)限、菜單等進(jìn)行增刪改查操作以及角色的賦權(quán)。管理員具有對(duì)用戶賬號(hào)管理,信息的修改、統(tǒng)計(jì)等處理權(quán)限。注冊(cè)用戶具有修改個(gè)人資料,信息瀏覽等權(quán)限。

3.2 數(shù)據(jù)庫(kù)配置

public UserInfo getUserByUserName(String userName){

UserInfo userInfo=null;

try{

userInfo=(UserInfo)

getSqlMapClientTemplate().queryForObject("USERINFO.getUserByUserName", userName);

}catch(Exception e){

logger.error(e);}

return userInfo;}

3.3登錄模塊的實(shí)現(xiàn)

本模塊登錄時(shí)沒有區(qū)分用戶角色,當(dāng)進(jìn)入系統(tǒng)后根據(jù)角色權(quán)限加載菜單項(xiàng)。用戶通過輸入用戶名和密碼,然后單擊登陸按鈕實(shí)現(xiàn)以上信息的提交并驗(yàn)證,若正確無(wú)誤進(jìn)入系統(tǒng)。

3.3.1錯(cuò)誤鎖定

登陸模塊根據(jù)用戶身份進(jìn)入系統(tǒng),顯示擁有權(quán)限的操作菜單。如果用戶不存在,則找不到數(shù)據(jù);如果用戶存在,密碼錯(cuò)誤,同樣找不到數(shù)據(jù),均提示用戶名密碼錯(cuò)誤;如果用戶名和密碼同時(shí)存在,則獲取用戶信息,并進(jìn)入相應(yīng)的界面。為系統(tǒng)安全考慮,若用戶連續(xù)而且超過三次輸入密碼錯(cuò)誤,則需要輸入驗(yàn)證碼。errorTime為輸入錯(cuò)誤次數(shù),當(dāng)驗(yàn)證碼輸入為空,或輸入錯(cuò)誤,就返回-1,此時(shí)對(duì)該賬號(hào)鎖定, 登錄失敗,必須經(jīng)過超級(jí)管理員解鎖才能重新使用。部分代碼分析如下:

if(errorTime>=3){

if(entryVlidateCode==null||(!entryVlidateCode.equals(realValidateCode))){

map.put("errorMsg","驗(yàn)證碼錯(cuò)誤");

map.put("userInfo",null);

map.put("errorCode",-1);

return map;

}}

3.3.2在線提示

用戶在登錄時(shí),會(huì)創(chuàng)建一個(gè)session,用于保存用戶信息。如果在線用戶列表中查找到該用戶已經(jīng)在線,同時(shí)又在其他機(jī)器登錄,那么首先提示用戶已經(jīng)在線,然后給出選擇擠下或者取消登錄。如果擠下,那么被擠機(jī)器就無(wú)法繼續(xù)前后臺(tái)的數(shù)據(jù)交互,自動(dòng)退出,登錄失敗。也就是限制用戶重復(fù)登錄,每個(gè)時(shí)刻只允許在一臺(tái)機(jī)器上登錄。

先從ServletContext中取出存放用戶登錄的session相關(guān)信息,檢查這個(gè)列表,若已經(jīng)存在相同的登錄信息,則說(shuō)明用戶之前已經(jīng)登錄過,移除前面一條記錄。再把此次登錄的信息加入到ServletContext中。監(jiān)聽實(shí)現(xiàn)SessionListener類,當(dāng)session失效的時(shí)候,從ServletContext中移除相應(yīng)記錄。過濾所有頁(yè)面,sesison失效后轉(zhuǎn)向登錄頁(yè)面。但是要實(shí)現(xiàn)用戶二次登錄后強(qiáng)制先前的登錄失效,需要在這里控制。登錄時(shí)存入的是session值和session ID,用戶二次登錄時(shí)移除了前次記錄,存入的session值是相同的,但是ID卻不同。 當(dāng)?shù)谝淮蔚卿涰?yè)面請(qǐng)求的時(shí)候,在這里檢查ServletContext中是否存在當(dāng)前的session值與ID,如果沒有就銷毀這個(gè)session。

3.3.3非法退出

對(duì)于WEB系統(tǒng)來(lái)說(shuō),均遵循HTTP協(xié)議的請(qǐng)求/應(yīng)答模型。所以網(wǎng)站本身是不能保存數(shù)據(jù)的,用戶正確登錄后,系統(tǒng)更改當(dāng)前用戶的狀態(tài)為在線。如果用戶在使用系統(tǒng)時(shí),不通過退出按鈕來(lái)執(zhí)行退出操作,而是非法退出,包括網(wǎng)絡(luò)斷線、系統(tǒng)癱瘓、突然斷電等情況。這些都使系統(tǒng)沒有給用戶記錄一個(gè)退出系統(tǒng)的操作機(jī)會(huì),這種情況下用戶的在線狀態(tài)會(huì)一直保留,從而影響下次登錄。因此,系統(tǒng)應(yīng)該設(shè)置一個(gè)定時(shí)器,定時(shí)清理并且還原用戶的初始狀態(tài)。

當(dāng)用戶以登陸身份請(qǐng)求服務(wù)器資源時(shí),記錄用戶的最后活躍時(shí)間。接著擬定一個(gè)失效時(shí)間,假設(shè)某個(gè)用戶的最后活躍時(shí)間和當(dāng)前時(shí)間的差值大于這個(gè)失效時(shí)間,也就是說(shuō)該用戶這一段時(shí)間都沒有和服務(wù)器交互了,那么就認(rèn)為該用戶已下線,否則認(rèn)為他是在線的。

3.3.4超時(shí)管理

Session對(duì)象是由服務(wù)器自動(dòng)創(chuàng)建的與用戶請(qǐng)求相關(guān)的對(duì)象。服務(wù)器為每個(gè)用戶都生成一個(gè)session對(duì)象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。應(yīng)用session對(duì)象時(shí)要注意它的生命周期,當(dāng)用戶首次訪問時(shí)將產(chǎn)生一個(gè)新的會(huì)話,從用戶打開網(wǎng)站生成,關(guān)閉瀏覽器刪除,以后服務(wù)器就會(huì)記住這個(gè)會(huì)話狀態(tài),在這一段時(shí)間內(nèi),用戶都可以訪問到會(huì)話對(duì)象中保存的信息。當(dāng)會(huì)話生命周期超時(shí),或者服務(wù)器端強(qiáng)制使會(huì)話失效時(shí),這個(gè)session就不能使用了,需要用戶重新登錄。

通過setMaxInactiveInterval()方法可以設(shè)置Session的生命周期,通過getMaxInactiveInterval()方法可獲得Session的生命周期,如果超過這個(gè)時(shí)間則失效。

4 結(jié)束語(yǔ)

信息的規(guī)范化、高效化管理在很大程度上體現(xiàn)了一個(gè)組織的工作效率,而登陸功能在其中起到了關(guān)鍵性作用,同時(shí)也為系統(tǒng)提供了安全性保障。該文對(duì)Web登錄模塊進(jìn)行了分析,使用Spring MVC框架進(jìn)行設(shè)計(jì),提出了解決方案,實(shí)現(xiàn)了系統(tǒng)用戶的登錄、出錯(cuò)處理、超時(shí)檢查等功能,使系統(tǒng)的重用性和擴(kuò)展性更好,用戶界面簡(jiǎn)潔統(tǒng)一,功能靈活,提高了系統(tǒng)的易用性、安全性及穩(wěn)定性。

參考文獻(xiàn) :

[1] 劉震宇,肖武魁.基于J2EE框架與ExtJS的Web系統(tǒng)登錄設(shè)計(jì)[J].中南林業(yè)科技大學(xué)學(xué)報(bào),2010(8).

[2] 張瑞青,李鐵柱.基于SpringMVC的用戶登錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2012(10).

spring框架范文第3篇

關(guān)鍵詞:Struts;Spring;Hibernate;人力資源管理系統(tǒng);依賴注入

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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

人力資源管理是知識(shí)經(jīng)濟(jì)時(shí)代企業(yè)管理的主要內(nèi)容,“以人為本”突出了人在企業(yè)中的作用。隨著市場(chǎng)競(jìng)爭(zhēng)的日益激烈,企業(yè)競(jìng)爭(zhēng)由外部競(jìng)爭(zhēng)逐漸轉(zhuǎn)變?yōu)槿轿桓?jìng)爭(zhēng),而人才的競(jìng)爭(zhēng)更是企業(yè)競(jìng)爭(zhēng)的焦點(diǎn)。

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

同志指出:“人才問題是關(guān)系黨和國(guó)家事業(yè)發(fā)展的關(guān)鍵問題?!?“國(guó)以人興,政以才治,為政之道,要在得人”。新世紀(jì)、新階段實(shí)施人才興企戰(zhàn)略,使人才越來(lái)越受到重視。[1]但是傳統(tǒng)的人力資源管理方法已經(jīng)不適應(yīng)于信息時(shí)代的發(fā)展要求,在傳統(tǒng)模式下,人力資源管理部門機(jī)構(gòu)比較龐大,工作任務(wù)繁重,各種工作由于使用人工來(lái)操作極易出錯(cuò)。建立信息化的人力資源管理系統(tǒng)已經(jīng)成為企業(yè)人力資源管理的首要任務(wù)。

根據(jù)企業(yè)人力資源管理需求,設(shè)計(jì)了基于Java EE的人力資源管理系統(tǒng)架構(gòu),采用Struts/Spring/Hibernate集成框架為基礎(chǔ)進(jìn)行了系統(tǒng)設(shè)計(jì),采用MVC、依賴注入、過濾器等技術(shù)簡(jiǎn)化了系統(tǒng)開發(fā),提高了系統(tǒng)的靈活性和可擴(kuò)展性。

1 系統(tǒng)需求

為了提高企業(yè)信息化水平,促進(jìn)企業(yè)管理的規(guī)范化、制度化、流程化,決定實(shí)施人力資源管理系統(tǒng)。希望通過這個(gè)系統(tǒng)的實(shí)施規(guī)范人事檔案的管理,規(guī)范薪酬體系和薪酬發(fā)放的管理,規(guī)范人事的調(diào)動(dòng)管理、培訓(xùn)管理和激勵(lì)管理。并對(duì)招聘工作的職位、簡(jiǎn)歷、面試、招聘題庫(kù)、招聘考試、錄用等環(huán)節(jié)加以規(guī)范。系統(tǒng)還需提供人事檔案的導(dǎo)出和報(bào)表功能。

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

2 開發(fā)平臺(tái)選擇

2.1 Struts/Spring/Hibernate集成框架

Struts/Spring/Hibernate集成框架是Struts、Spring和Hibernate三種技術(shù)的有機(jī)融合,是目前應(yīng)用最廣泛的Java EE架構(gòu)。在Struts/Spring/Hibernate集成框架中,Struts的作用是提供MVC模型,將界面、業(yè)務(wù)邏輯和數(shù)據(jù)分離,并提供一個(gè)高可擴(kuò)展的架構(gòu)。Spring作為依賴注入的容器,將項(xiàng)目中的構(gòu)建進(jìn)行粘結(jié)。而Hibernate提供了一個(gè)抽象的數(shù)據(jù)服務(wù)視圖,將用戶對(duì)數(shù)據(jù)庫(kù)的訪問進(jìn)行高度抽象。[2]

Struts 是目前創(chuàng)建Web 應(yīng)用最常用的表現(xiàn)層MVC 框架實(shí)現(xiàn),是JakartaApache 的一個(gè)開源項(xiàng)目[3]?;贛odel2 的Struts框架利用控制器和定制標(biāo)簽庫(kù)將應(yīng)用中的模型和視圖分離,達(dá)到了層間松散耦合的效果,同時(shí)提高系統(tǒng)的靈活性、重用性和維護(hù)性。作為開源項(xiàng)目,Struts經(jīng)受了大量實(shí)踐的檢驗(yàn),功能越來(lái)越強(qiáng)大,體系也日臻完善,并且對(duì)其他技術(shù)和框架顯示出良好的融合性。[4]

Spring由Rod Johnson創(chuàng)建,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。

Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用。

2.2數(shù)據(jù)庫(kù)服務(wù)器(SQL Server 2005)

SQL Server 2005是微軟具有里程碑意義的企業(yè)級(jí)數(shù)據(jù)庫(kù)產(chǎn)品,它在企業(yè)級(jí)支持、商業(yè)智能應(yīng)用、管理開發(fā)效率等方面有了顯著的增強(qiáng),是集數(shù)據(jù)管理與商業(yè)智能分析于一體的、極具前瞻性的下一代數(shù)據(jù)管理與分析平臺(tái)。

SQL Server 2005基于SQL Server 2000的強(qiáng)大功能之上,提供了一個(gè)完整的數(shù)據(jù)管理和分析解決方案,它將會(huì)給不同規(guī)模的組織帶來(lái)不同的幫助。采用SQL Server 2005作為人力資源管理系統(tǒng)的數(shù)據(jù)庫(kù),綜合考慮了系統(tǒng)規(guī)模、吞吐量、支出成本以及技術(shù)適應(yīng)性等方面。

2.3應(yīng)用服務(wù)器(Tomcat)

Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。在人力資源管理系統(tǒng)中,采用Tomcat 5.5做為應(yīng)用服務(wù)器。

3 系統(tǒng)設(shè)計(jì)

3.1 Action設(shè)計(jì)

Struts采用struts-config.xml來(lái)進(jìn)行Action的配置,主頁(yè)的Action配置如圖1所示。

對(duì)應(yīng)的xml編碼如下:

3.2依賴注入設(shè)計(jì)

依賴注入由Spring進(jìn)行管理,所有需要被注入的Bean,都在applicationContext.xml文件中進(jìn)行配置,其中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 過濾器的應(yīng)用

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

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

GBK

forceEncoding

true

CharacterEncodingFilter

*.jsp

CharacterEncodingFilter

*.do

4 總結(jié)

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

參考文獻(xiàn):

[1] 蔡琳.以科學(xué)發(fā)展觀指導(dǎo)企業(yè)人力資源管理[J].經(jīng)營(yíng)管理者,2009(22):322.

[2] 楊海斌.基于SSH框架的高校網(wǎng)站群內(nèi)容管理系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2009,8(9):118-119.

spring框架范文第4篇

關(guān)鍵詞:Struts、Spring、整合

一、引言

Struts框架是Apache基金會(huì)Jakarta項(xiàng)目組的一個(gè)Open Source(開放源代碼)項(xiàng)目,該框架由一組相互協(xié)作的類(組件)、Servlet以及標(biāo)簽庫(kù)組成,是對(duì)傳統(tǒng)MVC設(shè)計(jì)模式的一種實(shí)現(xiàn)和標(biāo)準(zhǔn)化,充分體現(xiàn)了MVC模式“分離顯示邏輯和業(yè)務(wù)邏輯”的設(shè)計(jì)思想,是目前Java Web開放中廣泛采用的技術(shù)。

Spring是由Rod Johnson創(chuàng)建的一個(gè)開源框架,目的是為了解決Java Web企業(yè)應(yīng)用開發(fā)的復(fù)雜性。Spring提供了IoC(控制反轉(zhuǎn))、AOP(面向切面編程)、聲明式事務(wù)等功能,提高了Java Web應(yīng)用開發(fā)的效率和質(zhì)量。更重要的是,Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對(duì)各種優(yōu)秀框架(如Struts,Hibernate等)的直接支持。

雖然Spring本身可以作為一個(gè)MVC實(shí)現(xiàn),但由于Struts在MVC方面的影響力,使得開發(fā)人員者更愿意將Struts整合到Spring中,而不是使用Spring MVC代替Struts。本文總結(jié)歸納了整合Struts和Spring的三種方法,并討論了各自的優(yōu)缺點(diǎn)。

二、整合struts和spring

1,使用ActionSupport類

(1)原理

當(dāng)客戶端發(fā)送http請(qǐng)求到控制器時(shí),使用請(qǐng)求參數(shù)填充FormBean,并根據(jù)struts-config.xml的配置將請(qǐng)求轉(zhuǎn)發(fā)給對(duì)應(yīng)的Action,Action通過調(diào)用父類的getWebApplicationContext()方法獲取ApplicationContext對(duì)象,在通過ApplicationContext對(duì)象從Spring容器中獲取相關(guān)的JavaBean,通過Action處理后將處理結(jié)果會(huì)發(fā)給控制器,控制其根據(jù)struts-config,xml的配置將處理結(jié)果傳回到客戶端。

(2)用法

①在struts-config xml中配置插件,代碼如下:

②創(chuàng)建A ction類,繼承自ActionSupport或DispatchActionSupport;

③在Action中通過調(diào)用getWebApplicationcontext()方法獲取ApplicationContext對(duì)象,然后調(diào)用ApplicationContext對(duì)象的getBean()方法從Spring容器中取出相應(yīng)的對(duì)象。

(3)評(píng)價(jià)

這種技術(shù)很簡(jiǎn)單并且易于理解。但是,它將Struts動(dòng)作與Sp ring框架耦合在一起。如果想替換掉Spring,那么就必須重寫代碼。同時(shí),由于Struts動(dòng)作不在Spring的控制之下,所以它不能獲得SpringAOP的優(yōu)勢(shì)。當(dāng)使用多重獨(dú)立的Sp ring環(huán)境時(shí),這種技術(shù)可能有用,但是在大多數(shù)情況下,這種方法不如另外兩種方法合適。

2,使用DelegatingRequestProcessor類

(1)原理

客戶端發(fā)送http請(qǐng)求到控制器ActionServlet,控制器將使用請(qǐng)求參數(shù)填充FormBean并根據(jù)Struts-config,xml的配置將請(qǐng)求轉(zhuǎn)發(fā)給DelegatingResquestProcessor,DelegatingResquestProcessor根據(jù)Spring配置文件從web容器中提取ActionBean并調(diào)用相關(guān)的JavaBean,由ActionBean對(duì)請(qǐng)求進(jìn)行處理,處理完畢后在轉(zhuǎn)發(fā)給控制器,控制器再根據(jù)struts-config.xml的配置把將處理結(jié)果發(fā)揮給客戶端。

(2)用法

①在struts-config.xml中配置插件,代碼如下:

vaIue=”classpath applIcationContext.xmI”/>

②在struts-config.xml中增加如下節(jié)點(diǎn):

DelegatingRequestProcessor”/>

③創(chuàng)建Action,并在spring配置文件ApplicationContext xml中對(duì)其進(jìn)行注冊(cè)。

(3)評(píng)價(jià)

這種方法使Struts動(dòng)作并不知道它正被Spring管理,并且使我們能夠利用Spring的動(dòng)作管理框架的所有優(yōu)點(diǎn)。由于Struts動(dòng)作注意不到Spring的存在,所以我們不需要重寫我們的Struts代碼就可以使用其他控制反轉(zhuǎn)容器來(lái)替換掉Spring??磥?lái)這種方法的確比第一種方法好,但還是存在著一些問題。如果我們使用一個(gè)不同的RequestProcessor,則需要手動(dòng)整合Spring的DelegatingRequestProcessor。添加的代碼會(huì)造成維護(hù)的麻煩并且將來(lái)會(huì)降低的應(yīng)用程序的靈活性。

3,將StrutsAction管理委托給Spring框架

(1)原理

客戶端發(fā)送http請(qǐng)求到控制器ActionServlet,控制器將使用請(qǐng)求參數(shù)填充FormBean,并根據(jù)struts-config.xmI的配置將請(qǐng)求轉(zhuǎn)發(fā)給DelegatingActionProxy,DelegatingActionProxy根據(jù)請(qǐng)求信息從Spring容器中獲取相應(yīng)的Action并由Spring為其注入相關(guān)的JavaBean,請(qǐng)求經(jīng)Action處理完畢后在轉(zhuǎn)發(fā)給DelegatingActionProxy,DelegatingActionProxy在轉(zhuǎn)發(fā)處理結(jié)果給控制器,控制器根據(jù)struts-config.xml的配置把將處理結(jié)果發(fā)揮給客戶端。

(2)用法

①在Struts-config.xml中配置插件,代碼如下:

value=classpath:applicationContext.xmI/>

②創(chuàng)建Action并將st ruts-config,xml中的Action節(jié)點(diǎn)的type更改為org.springframework.web.struts,DeIegatingActionProxy

③在Spring配置文件中注冊(cè)ActionBean。

(3)評(píng)價(jià)

動(dòng)作委托方法是這3種方法中最好的。Struts動(dòng)作不了解Spring,不對(duì)代碼作任何改變就可用于非Spring應(yīng)用程序中。RequestProcessor的改變不會(huì)影響它,并且它可以利用SpringAOP特性的優(yōu)點(diǎn)。

spring框架范文第5篇

關(guān)鍵詞:開源框架;客戶關(guān)系;整合;SSH

中圖分類號(hào):TP315文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)03-0617-03

CRM Design and Implementation Based on Open Source Frameworks

ZHAO Yong-hui, DENG Wen-xin

(Zhejiang Guangsha College of Applied Construction Technology, Dongyang 22100, China)

Abstract: In this paper, three main open-source frameworks Struts, Spring and Hibernate based, integrated design of a common SSH open source framework and its application to customer relationship management system. Practical results show that the framework of the integrat? ed framework of their three full advantage of reducing the coupling between the layers, increase the system flexibility and scalability, with a high reference and promotion of practical value.

Key words: open-source framework; customer relationship; integration; SSH

隨著全球一體化經(jīng)濟(jì)的到來(lái)和市場(chǎng)競(jìng)爭(zhēng)越來(lái)越激烈,客戶對(duì)企業(yè)要求越來(lái)越高,需求呈現(xiàn)多樣化、個(gè)性化、差異化。在當(dāng)前激烈的市場(chǎng)競(jìng)爭(zhēng)環(huán)境下,市場(chǎng)的競(jìng)爭(zhēng)已經(jīng)從產(chǎn)品的競(jìng)爭(zhēng)轉(zhuǎn)向了客戶資源的競(jìng)爭(zhēng)[1]。因此,企業(yè)為了爭(zhēng)取最多的客戶,獲得最大利潤(rùn),就必須實(shí)施針對(duì)性的策略,進(jìn)行“一對(duì)一營(yíng)銷”,CRM正是達(dá)到這一目的的一個(gè)好的工具[2]。

通過實(shí)施CRM,一方面有助于規(guī)范企業(yè)管理,實(shí)現(xiàn)企業(yè)管理與業(yè)務(wù)運(yùn)作的信息化和自動(dòng)化。另一方面有助于整合企業(yè)的客戶資源,掌握客戶資源,制定合理的發(fā)展戰(zhàn)略和市場(chǎng)策略,提高企業(yè)競(jìng)爭(zhēng)力。由此可見,通過實(shí)施CRM,既可以提高企業(yè)的工作效率和收益,同時(shí)能保持老客戶和發(fā)展新客戶,從而把握未來(lái)競(jìng)爭(zhēng)的主動(dòng)權(quán)[3]。

1系統(tǒng)框架設(shè)計(jì)

1.1 SSH的集成框架

SSH的集成框架通過整合Struts、Spring和Hiber? nate這三種框架,形成一種新的輕量型的J2EE架構(gòu),實(shí)現(xiàn)了MVC三層架構(gòu)的軟件開發(fā)模式,用這架構(gòu)可以實(shí)現(xiàn)高內(nèi)聚、低耦合、易維護(hù)的分布式應(yīng)用程序。

系統(tǒng)從職責(zé)上分為3層:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層[3]。其中表示層主要負(fù)責(zé)提供界面實(shí)現(xiàn)與用戶的交互,采用Struts框架,實(shí)現(xiàn)了MVC的分離。業(yè)務(wù)邏輯層它管理著具體的業(yè)務(wù)對(duì)象和業(yè)務(wù)操作,采用Spring框架,Spring有成熟的事務(wù)管理和依賴注入機(jī)制,能很好整合Struts和Hibernate。數(shù)據(jù)持久層利用Hibernate框架完成數(shù)據(jù)持久化操作。其具體的架構(gòu)圖如圖1所示。

圖1 SSH架構(gòu)圖

1.2 SSH集成框架工作流程

首先JSP頁(yè)面提交請(qǐng)求給Struts2的ActionServlet核心控制器,核心控制器根據(jù)配置文件Struts-config.xml找到相應(yīng)的Action,然后調(diào)用業(yè)務(wù)處理需要使用的Spring的bean,Spring的bean中提供相應(yīng)的Java EE服務(wù),在bean中調(diào)用數(shù)據(jù)持久層的DAO對(duì)象進(jìn)行數(shù)據(jù)庫(kù)的操作,接著把操作結(jié)果數(shù)據(jù)返回給Action,最后由Action決定數(shù)據(jù)發(fā)回給相應(yīng)的JSP頁(yè)面。

2系統(tǒng)實(shí)現(xiàn)

2.1系統(tǒng)功能介紹

根據(jù)公司對(duì)客戶管理的需要,該系統(tǒng)能把客戶基本信息、聯(lián)系人相關(guān)信息、交往記錄和客戶服務(wù)記錄等信息,實(shí)現(xiàn)規(guī)范化管理并共享;能通過分析銷售機(jī)會(huì)和客戶開發(fā)過程的記錄,為開發(fā)新客戶提供幫助;系統(tǒng)能根據(jù)客戶的信息和交往記錄,在客戶將要流失前及時(shí)告知銷售人員,采取措施挽回客戶。系統(tǒng)能提供相關(guān)報(bào)表給公司領(lǐng)導(dǎo)分析了解公司客戶情況。

系統(tǒng)功能劃分成了營(yíng)銷管理、客戶管理、服務(wù)管理、統(tǒng)計(jì)報(bào)表、基礎(chǔ)數(shù)據(jù)和權(quán)限管理等六個(gè)模塊,系統(tǒng)功能設(shè)計(jì)如圖2所示。

圖2系統(tǒng)功能設(shè)計(jì)

2.2系統(tǒng)功能實(shí)現(xiàn)

客戶關(guān)系管理系統(tǒng)以MyEclipse 7.0為開發(fā)工具,以Microsoft SQL Server 2005作為數(shù)據(jù)庫(kù),Web服務(wù)器服務(wù)器為Tomcat6.0,采用SSH集成框架開發(fā)。由于系統(tǒng)的模塊較多,下面以一個(gè)以用戶登錄功能為例詳細(xì)說(shuō)明系統(tǒng)的開發(fā)實(shí)現(xiàn)過程,并將按照持久層、邏輯層、表示層和框架整合的順序說(shuō)明系統(tǒng)構(gòu)建過程。

2.2.1持久層的實(shí)現(xiàn)

1)實(shí)現(xiàn)Hibernate建模

在Eclipse中運(yùn)用HibernateTools從數(shù)據(jù)庫(kù)中生成java持久化對(duì)象模型和hbm映射文件hibernate.cfg.xml,并且將它的路徑添加到應(yīng)用的類路徑中完成Hibernate的配置,該配置文件由Hibernate用來(lái)連接到數(shù)據(jù)庫(kù)、生成模式和獲得其它特定數(shù)據(jù)庫(kù)信息的屬性組成[4]。

2)生成java持久化對(duì)象模型和hbm映射文件

使用Hibernate代碼生成工具把數(shù)據(jù)庫(kù)中的表映射為java類,列映射為java類的屬性。同時(shí),生成hibernate.hbm.xml文件,該文件實(shí)現(xiàn)對(duì)象和數(shù)據(jù)庫(kù)之間的映射。

3)編寫數(shù)據(jù)訪問類通用DAO類接口:

public interface CommonDAO {

public List list(String sql);//查詢方法

}

通用實(shí)現(xiàn)類CommonDAOHibImpl繼承了HibernateDaoSupport類,實(shí)現(xiàn)了通用DAO類接口CommonDAO中的查詢方法,代碼如下:

public List list(String hql){ //查詢方法

List ret = super.getHibernateTemplate().find(hql);

return ret;

}

2.2.2邏輯層的實(shí)現(xiàn)

邏輯層主要負(fù)責(zé)具體的業(yè)務(wù)邏輯處理、執(zhí)行應(yīng)用邏輯、執(zhí)行向持久層的調(diào)用、獲得從用戶接口層的請(qǐng)求、處理事務(wù)和處理異常 等功能。這些功能由Spring的IOC、AOP應(yīng)用、面向接口編程來(lái)實(shí)現(xiàn),業(yè)務(wù)的管理采用spring配置的方式。

1)配置Spring上下文applicationContext.xml

該文件是整個(gè)框架的核心,Spring通過它實(shí)現(xiàn)程序中的依賴的關(guān)系并管理各組件,同時(shí)業(yè)務(wù)方法實(shí)現(xiàn)事務(wù)管理。在該文件中指出UserAction依賴于UserBiz,UserBiz依賴于CommonDAOHibImpl,CommonDAOHibImpl依賴于SessionFactory,SessionFactory依賴于DataSource,如圖3所示。

圖3各組件的依賴關(guān)系

2)業(yè)務(wù)邏輯代碼

編寫UserAction類和UserBiz類,2個(gè)類的實(shí)例都由Spring在運(yùn)行期間“設(shè)值注入”方式動(dòng)態(tài)注入。

2.2.3表現(xiàn)層的實(shí)現(xiàn)

利用Struts標(biāo)簽和Html語(yǔ)言建立用戶登錄的JSP文件,實(shí)現(xiàn)與用戶的交互。用戶通過登錄頁(yè)面輸入登錄信息,根據(jù)Struts的相關(guān)配置把登錄請(qǐng)求轉(zhuǎn)到Action處理。

2.2.4三個(gè)框架的整合實(shí)現(xiàn)

1) Spring與Hibernate整合實(shí)現(xiàn)

①在web.xml中配置spring監(jiān)聽器來(lái)啟動(dòng)Spring,配置contextConfigLocation參數(shù)為applicationContext.xml文件的路徑和listen? er-class類為ContextLoaderListener。監(jiān)聽器通過初始化參數(shù)contextConfigLocation找到配置文件applicationContext.xml并加載Con? textLoaderListener。

②在applicationContext.xml文件中配置數(shù)據(jù)源和SessionFactory,使用Spring提供的LocalSessionFactoryBean,傳入一個(gè)Hibernaet配置文件的配置。

2) Spring與Struts的整合實(shí)現(xiàn)

利用Struts框架開發(fā)的WEB應(yīng)用程序,由控制器組件Action調(diào)用業(yè)務(wù)邏輯組件,業(yè)務(wù)邏輯組件由Spring IoC來(lái)管理,是通過Spring的DelegatingRequestProcessor截獲頁(yè)面層的請(qǐng)求來(lái)完成的[5]。

①在struts-config.xml配置插件

在struts-config.xml中配置Spring中的ContextLoaderPlugin類,把Spring配置文件的位置告知插件。

②修改Action Bean配置,在Struts配置文件中Action類別都配置為“org.springframework.web.struts.DelegatingRequestProcessor”,ActionServlet通過RequestProcessor來(lái)完成實(shí)際的請(qǐng)求轉(zhuǎn)發(fā)。

③配置Struts中的Action,把Struts配置文件中配置Actionr的name改為id屬性,name屬性的值應(yīng)與struts-config.xml中配置的Action的path屬性的值相同,這樣系統(tǒng)即會(huì)自動(dòng)通過Spring來(lái)管理Action[5]。

3結(jié)束語(yǔ)

本文通過整合Struts、Spring、Hibernate三個(gè)開源框架,形成了SSH通用框構(gòu)。實(shí)踐證明,該框構(gòu)充分發(fā)揮了Struts、Spring和Hi? bernate框架各自的優(yōu)勢(shì),降低了各層間的耦合度,避免了許多重復(fù)性的工作,從而提高了開發(fā)的效率和系統(tǒng)的質(zhì)量。通過應(yīng)用這個(gè)通用框構(gòu)開發(fā)的客戶關(guān)系管理系統(tǒng),在公司使用一年后,運(yùn)行良好,公司比較滿意,為該公司的客戶管理做出了一定的貢獻(xiàn)。

參考文獻(xiàn):

[1]陶紅玉.基于WEB的客戶關(guān)系管理系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:華北電力大學(xué),2009.

[2]楊帥.基于SSH的CRM系統(tǒng)的研究和設(shè)計(jì)[D].重慶:重慶交通大學(xué),2009.

[3]王淵,懷自國(guó),羅怡桂.基于Ext+Spring+Hibernate的Web系統(tǒng)開發(fā)架構(gòu)的研究與應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2009(12):78-81.

相關(guān)期刊更多

核農(nóng)學(xué)報(bào)

北大期刊 審核時(shí)間1-3個(gè)月

農(nóng)業(yè)農(nóng)村部

健康之路

省級(jí)期刊 審核時(shí)間1個(gè)月內(nèi)

廣東省科學(xué)技術(shù)協(xié)會(huì)

臨床腫瘤學(xué)

統(tǒng)計(jì)源期刊 審核時(shí)間1-3個(gè)月

無(wú)錫聯(lián)勤保障中心衛(wèi)勤處

衡阳县| 青浦区| 涟水县| 嫩江县| 灵武市| 宣威市| 垦利县| 会泽县| 宁蒗| 江陵县| 五华县| 淅川县| 通州区| 枝江市| 盐山县| 赤峰市| 济源市| 永吉县| 荆州市| 开化县| 赞皇县| 巴马| 田林县| 永济市| 栾川县| 富宁县| 宁明县| 黑山县| 白城市| 马关县| 铜川市| 定襄县| 六安市| 望谟县| 聂拉木县| 大厂| 安吉县| 无棣县| 江川县| 宣威市| 崇文区|