2021年基于SPRING框架的WEBSPHERE應用開發(fā)3_第1頁
2021年基于SPRING框架的WEBSPHERE應用開發(fā)3_第2頁
2021年基于SPRING框架的WEBSPHERE應用開發(fā)3_第3頁
2021年基于SPRING框架的WEBSPHERE應用開發(fā)3_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于Spring框架的WebSphere應用開發(fā)3 基于Spring框架的WebSphere應用 _3 spring與websphere應用服務器的配合 spring與底層j2ee應用服務器還是存在一些需要結合的地方,這里給出was中的一些結合點。 使用was數(shù)據(jù)源 在java應用程序中,數(shù)據(jù)庫的連接一般有兩種方式來得到。一種是通過java.sql.driver _nager的方式來得到數(shù)據(jù)庫連接。這種方式不依賴于應用服務的支持,但是也不提供數(shù)據(jù)庫連接池的功能。另外一種方式是通過javax.sql.datasour _的方式來得到數(shù)據(jù)庫連接。在傳統(tǒng)基于j2ee的應用需要通過jndi來得到數(shù)據(jù)源

2、(javax.sql.datasour _)對象,然后再通過數(shù)據(jù)源來得到相應的數(shù)據(jù)庫連接。常見的應用服務器都支持這種方式,且一般都提供了數(shù)據(jù)庫連接池的支持。雖然說我們一般推薦使用數(shù)據(jù)庫連接池,但是也有一些時候我們需要脫離開應用服務器的環(huán)境使用數(shù)據(jù)庫(比如單元測試,比如應用移植等)。然而應用程序使用這兩種方式的時候代碼是不一樣的,因此只能通過代碼來應變。spring提供了一個統(tǒng)一使用數(shù)據(jù)源的解決方案,然后通過控制反轉(zhuǎn)的機制用外部配置文件來指定使用的數(shù)據(jù)源。這樣一方面可以統(tǒng)一這兩種得到數(shù)據(jù)庫連接的方式,另一方面也不需要像通常的j2ee應用通過繁瑣的jndi代碼來得到數(shù)據(jù)源。這樣應用程序也就不需要知

3、道使用的何種數(shù)據(jù)源。 spring提供了一個driver _nagerdatasour _類來統(tǒng)一第一種方式的數(shù)據(jù)源獲取。如果使用was中的cloudscape數(shù)據(jù)庫,用外部配置文件可配置如下: .ibm.db2j.jdbc.db2jdriver jdbc:db2j:d:dbname spring提供了jndiobjectfactorybean類來支持第二種方式的數(shù)據(jù)源獲取。假設was中已經(jīng)配置好的數(shù)據(jù)源名稱為jdbc /mydb,那么用外部配置文件可配置如下: java:p/env/jdbc/mydb 或者 jdbc/mydb true 從上面配置我們可以得知,通過使用spring,應用程序

4、能夠統(tǒng)一使用不同的數(shù)據(jù)源實現(xiàn)。如果使用環(huán)境發(fā)生變化,那么只需要修改spring的配置文件即可。對于部署在was上的web應用,在生產(chǎn)環(huán)境中推薦使用was實現(xiàn)的數(shù)據(jù)庫連接池。一方面是因為連接池實現(xiàn)地比較完善。另一方面,使用was提供的數(shù)據(jù)庫連接池可以很完善地支持jta事務。 使用was的jta web應用程序在使用事務的時候常常會涉及一個事務類型的選擇。是選擇像jdbc事務這樣的本地事務呢還是使用jta支持的全局事務。這個與應用程序需要涉及到的事務管理器類型和個數(shù)密切相關。spring本身不支持分布式事務,因此分布式事務需要底層的jta。但是spring提供了事務的抽象,即底層真正事務實現(xiàn)可以切

5、換而不影響應用程序代碼。這樣應用程序可以依賴于底層was,也可以輕易地脫離開應用服務器的環(huán)境。這一點與前面數(shù)據(jù)源的抽象非常類似。 was本身對于事務劃分有兩種支持方式,一種是聲明式的,當然這種管理方式需要ejb容器的支持,即所謂的容器管理事務(cmt)。另外一種方式是編程式的,通過程序代碼來直接使用jta編程接口。spring對于事務的劃分也可以分為聲明式和編程式兩種方式。對于spring編程式的事務劃分方式,總體上可以分為兩大類。一類是通過直接使用實現(xiàn)platformtransaction _nager接口的類。另一類是通過使用transactiontemplate模板類,模板類的使用可以簡

6、化事務控制代碼。spring對于聲明式事務劃分的支持實際上是利用了它的aop機制。相對于編程式事務劃分,這種基于aop的方式比較靈活,而且對代碼的侵入性幾乎為零。因此,如果沒有特殊需要推薦使用這種事務劃分方式?;赼op的常用事務劃分方式可以使用proxyfactorybean加transactioninter _ptor方式,或者使用transactionporxyfactorybean的方式。前一種方式相對比較靈活,而后一種則對使用相對比較簡單。 無論是哪一種事務劃分方式,底層都需要一個事務管理機制作為支撐。如果是單一的事務資源管理器,那么根據(jù)所使用的后臺事務管理資源不同的類型,可以選擇的

7、platformtransaction _nager實現(xiàn)有datasour _transaction _nager,hibernatetransaction _nager, jdotransaction _nager, persisten _brokertransaction _nager,和jmstransaction _nager等。無論是單個還是多個事務資源管理器,都可以使用jtatransaction _nager類。如果使用jtatransaction _nager,那么所有事務管理實際都會委托給底層應用服務器的jta實現(xiàn)。 例如,如果使用jdbc或ibatis,那么我們可以使用簡單的datasour _transaction _nager,外部配置文件片斷如下: 如果使用hibernate,那么我們可以使用hibernatetransaction _nager,外部配置文件片斷如下: 使用was的jta支持,我們只需要把上述對應bean中的class屬性改成cla

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論