學習EJB編程的簡單過程
從單層體系結構講到了多層體系結構,又講到了N層體系結構。這樣引出了主題(J2EE)。不過這句話翻譯的不錯:其他需要特別注意的(是)服務器方資源包括線程,數據庫連接,安全、事務等等。定制處理這些資源的基礎結構是相當費勁的。這種工作在INTERNET環境中是不可能的。如果你的開發周期只有三個月,能夠對數據庫訪問建立連接池、對象緩沖區或“精彩的”對象層嗎?
說了一大堆話終于引出了偉大的J2EE。不過要是不知道N層結構的真應該看看!容器:說白了容器就是JAVA程序的運行環境。不知道我的理解是否正確。現在的程度就只能理解到這了。
在學習EJB過程中,書上說J2EE規范定義了四種容器類型:
1.小應用程序(APPLET)。
2.應用程序客戶容器。(自己以為就是SWING)
3.WEB容器(SERVLET 和 JSP)
4.EJB容器。
看來123都已經掌握了,現在就差4了,所以學習EJB容器還是必要的哦!書上對EJB寫了個更加深入的解釋:EJB是個分布式組件模型,可以開發安全的、可伸縮的、事務性的多用戶組件。簡單的說,EJB是包含業務邏輯的可復用軟件單元。就象JSP可以將應用程序與業務邏輯分開一樣,EJB可以將應用程序邏輯和系統層服務分開,使開發人員集中考慮業務問題,而不必考慮系統編程。
J2EE API:
RMI/IIOP:Remote Method Invocation類似網絡連接使用的一些東西。
JNDI:Java Naming and Directory Interface。
JDBC:這個不用說了吧?
JAVAMAIL/JAF:JAVA的MAIL服務,JAF是郵件的附件。
JMS:JAVA MESSAGE SERVER。JAVA消息服務。
設計中為何使用EJB:
說了一大堆,我還是不確定是為什么。再接著看吧!不過這次我更加的確定了,原來EJB容器就相當于一個“功能“服務器,可以把一些業務功能寫在這個里邊。然后用123來調用咯!(不知道這么說是不是有點搞笑)。哈哈,我的理解正確了,果然書的第8頁就說了,容器可以看成是執行環境!EJB的容器服務:(這里的容器服務都是不用編碼,而是容器管理自己實現的啊。不錯)
組件池和壽命周期管理:
哈哈,來點白話的,這是我個人理解的,組件池在容器啟動的時候就自己生成了好多的BEAN的實例,假如說是10個吧,這個時候客戶1來了,他就拿了BEAN1,這個時候別人是不能使用BEAN1的,再來了第2個客戶,他不能拿BEAN1了,就只能拿BEAN2了。。。。。。。這個時候客戶11來了,容器發現已經沒有BEAN給他用了,于是就找個現在沒人用的BEAN給他用,可是發現全都在被占用,沒辦法了,就只好再生成一個給他用了。哈哈,就是這么簡單,可是有人會問了,這不是越生成越多嗎?沒關系,容器發現生成的BEAN沒人用了,就會自動的給刪掉,釋放空間,釋放系統資源嘛!
客戶會話管理:
理解鈍化和激活就行了。鈍化就是把客戶的BEAN狀態保存在池中。激活就是把客戶的這個BEAN狀態再還給客戶。
數據庫連接池:
這個好象不用講了吧!數據資源共享!這個名起的COOL B了。
事務管理:
事務很是昂貴啊!
驗證和訪問控制:
這個很簡單!容器如何提供服務:這一部分先不寫,以后再寫,因為我也不怎么理解。哈哈
EJB類型:
分為3種類型:
會話BEAN:
1.無狀態會話BEAN。
2.狀態會話BEAN。
這兩個BEAN非常的重要,但是在第3章才有講。哈哈,先擱這!
實體BEAN:
自己理解就好象是數據庫BEAN,就是把數據庫的內容都讀出來放在BEAN里,也不知道它具體是怎么讀的,這樣做會不會很浪費系統資源!???
實體BEAN根據同步的不一樣又可以分為:
CMP(容器管理的持久性):容器負責BEAN與基礎的數據庫同步。
BMP(BEAN管理的持久性):這里要編程人員負責和基礎數據庫同步!容器在適當的時候調用編程人員寫好的SQL語句!
真不明白,為什么已經有CMP了還要出了個BMP,書上是這么解釋的:
有時需要增加設計的靈活性或在非關系型存儲中支持持久性?這是人話嗎?
還有個比方:EJB規范V1.1只允許實例變量和表格列之間的一對一映射。這樣,使用這個版本時,如果要在實體BEAN中表示在多個表格中存儲狀態的累計對象,則無法使用CMP,而要使用BMP。EJB2.0規范定影了復雜的查詢語言!
【編輯推薦】