程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> J2EE小知識

J2EE小知識

編輯:J2EE
J2EE應用程序中的Enterprise Beans 當編寫管理特定業務功能(比如追蹤雇員資料或進行復雜財務計算)的J2EE應用程序時,請將完成這些任務的業務邏輯放置在EJB層的 enterprise beans中。以這種方式,我們就可以使代碼集中在解決手邊的業務問題,而利用enterprise bean容器來支持低層服務,比如狀態管理、事務管理、線程管理、遠程數據訪問和安全等。 將業務邏輯與低層系統邏輯分開意味著容器可以在運行時創建和管理enterprise bean。按照規范編寫的任何enterprise bean,都可以根據其在一個特定的J2EE應用程序中將被如何使用來對其事務管理或安全屬性進行配置,並可以被部署到任何一個與規范兼容的容器中。可再用組件使不必改變和重新編譯enterprise bean代碼成為可能 。 一個enterprise bean由接口和類組成。客戶程序通過enterprise bean的home和遠程接口來訪問enterprise bean的方法。Home接口提供了創建、刪除和定位enterprise bean的方法,而遠程接口則提供了業務方法。在部署時,容器由這些接口來創建類,使客戶能夠創建、刪除、定位或調用位於enterprise bean上的業務方法。enterprise bean類提供了業務方法、創建方法和查尋方法的實現。如果enterprise bean管理它自己的持久性的話,還為其生命期方法提供了實現。 有兩種Enterprise beans:entity beans和session beans。 一個session bean代表與客戶程序的一個短暫的會話,而且可能執行數據庫讀寫操作。一個session bean可能會自己調用JDBC,或者它可能使用entity bean來完成此種調用。在後者這種情況下,這個session bean是該entity bean的客戶。一個session bean的域包含會話狀態,而且是短暫的。如果服務器或者客戶程序崩潰,該session bean就丟失了。這種模式通常被用於像PL/SQL這樣的數據庫程序設計語言上 。 一個entity bean代表一個數據庫中的數據及作用於該數據的方法。在一個關系型數據庫中的雇員信息表中,每一行都有一個bean來代表。entity beans是事務的,並且是長壽命的。只要數據留在數據庫中,entity bean就存在。這個模式可以被很容易地用於關系型數據庫,而不僅限於對象數據庫。 Session beans可以是有狀態的,也可以是無狀態的。一個有狀態的session bean包含代表客戶程序的會話狀態。該會話狀態是該session bean實例的域值加上這些域值所引用到的所有對象。有狀態session beans並不代表在一個持久數據存儲中的數據,但是,它可以代表客戶程序訪問和更新數據。 無狀態session beans沒有用於某個特定客戶程序的任何狀態信息。它們通常被用於提供不保持任何特定狀態的服務器端行為。無狀態session beans要求更少的系統資源。一個提供一種一般服務,或用於表示被存儲的數據的一個被共享的視圖的業務對象是無狀態session bean的一個例子 。 因為enterprise beans占用可觀的系統資源和帶寬,可能希望將某些業務對象構造成數據訪問對象或值對象。數據訪問對象完成諸如代表客戶程序訪問數據庫等工作。值對象用於代表容納數據字段並提供簡單的“get和set”方法來訪問這些數據的一個結構 。 另外,可以將程序構造成使用enterprise bean在客戶和EJB層的其它部分之間承擔通信的任務 。 一個使用容器管理的持久性來訪問一個關系型數據庫的enterprise bean,並不要求在bean的代碼中使用任何JDBC 2.0 API來進行數據庫訪問,因為容器完成了這些工作。然而,如果使用bean管理的持久性,或者我們要訪問一個非關系型數據庫的企業信息系統,那麼我們就必須在bean中提供相應的代碼來完成這些工作 。 在一個enterprise bean使用bean管理的持久性來訪問一個數據庫的情況下,必須使用JDBC 2.0 API代碼來實現該enterprise bean的生命期方法,以便處理數據的加載和存儲,以及在運行時系統和持久數據存儲之間維持數據的一致性。 一個使用bean管理的持久性的enterprise bean,或一個需要訪問企業信息系統的Web組件必須提供合適的代碼。這些代碼可能是用於進行數據庫訪問的JDBC 2.0 API;或是用於訪問一個特定企業信息系統的企業信息系統API;或是用於抽象企業信息系統API的復雜性和低層細節的一個訪問對象,或是用於訪問企業信息系統資源的一個連接對象。 盡管Web層使用HTTP或HTTPS來在各層之間傳輸數據,但是,EJB層使用的是RMI-IIOP。RMI-IIOP是一個完整的分布式計算協議,能讓任何訪問一個enterprise bean的客戶層程序或Web層程序直接訪問EJB層的服務。這些服務包括用於查找和引用enterprise beans的JNDI,發送和接收異步消息的Java Message Service(JMS),以及用於關系型數據庫訪問的JDBC。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved