天天看點

Ejb in action(一)——開篇介紹

從今天開始,我們共同來學習javaee中一個非常重要的規範:ejb。既然您已經找到了這篇文章,就說明您至少已經對分布式開發有個大體上的概念了,之前沒了解過也沒關系,正好通過咱們的共同學習,一起來了解它以及深入地學習它。

首先,我們來看一些ejb的總括圖:

Ejb in action(一)——開篇介紹

這裡是我對ejb這一塊兒知識進行的整理分類,下面我們看一下ejb的概念。

也就是說,我們在深入展開學習之前,我們要弄明白:什麼是ejb?

ejb也就是enterprise javabeans,它是javaee分布式開發中的中間件,它定義了java伺服器端服務架構的規範。比如事務、安全、jndi等等。

百度百科給出的解釋如下:

ejb是sun的伺服器端元件模型,設計目标與核心應用是部署分布式應用程式。憑借java跨平台的優勢,用ejb技術部署的分布式系統可以不限于特定的平台。ejb (enterprise javabean)是j2ee的一部分,定義了一個用于開發基于元件的企業多重應用程式的标準。其特點包括網絡服務支援和核心開發工具(sdk)。

在j2ee裡,enterprise java beans(ejb)稱為java 企業bean,是java的核心代碼,分别是會話bean(session bean),實體bean(entity bean)和消息驅動bean(messagedriven bean)。

了解了ejb的概念,我們還需要了解ejb容器以及ejb在分布式開發中的作用:

Ejb in action(一)——開篇介紹

如上圖,ejb容器提供了分布式應用的運作環境。用戶端可以通過rmi或者通過jndi對其中業務進行通路。

下面我結合幾個問題,談談對ejb的看法:

1、我們既然已經有了普通的javabean,為什麼我們還需要enterprise javabean呢?

我們在開發中,當然可以寫普通javabean,來完成背景開發。但是在分布式開發中使用普通的javabean,我們就需要考慮很多與業務需求無關的業務。比如安全問題,我們無法保障;分布式事務,需要我們自己手動寫代碼維護等等這些,這些如果我們手動維護,就大大提高了對開發人員的要求,他們需要寫大量的重複代碼,且不利于維護。

enterprise javabean,能夠獲得ejb容器以及ejb伺服器提供的服務。它就能夠幫我們做這些與業務邏輯關系不是很大但是極其重要的事情。我們就可以将更多的精力放在業務邏輯的實作上。而它的使用非常簡單,與編寫普通的javabean沒有什麼太大的差別。

2、在分布式開發中,毫無以為,ejb擔當起了背景服務開發,那ejb的各種bean、ejb容器、ejb伺服器是如何結合工作的呢?

我們都知道,ejb是重量級中間件。我們通過完全透明的方式對它進行通路,尤其是在ejb3.0中,我們隻需要幾行注解,就配置好了事務;或者隻需要寫幾行注解,就注入了你所需的服務或資源。

我們将業務邏輯寫到enterprise bean中,打成jar包或者war包或者ear包,部署在部署在ejb容器上。在ejb容器中,包含着各種通用性的服務,也就是說,ejb的伺服器通過ejb容器,向外提供服務;兒enterprise bean也是通過ejb容器,間接獲得所需服務。

也就是如下圖:

Ejb in action(一)——開篇介紹

ejb發展至今,已經到了成功釋出到了ejb3.0版本。其實在ejb2版本中,功能已經比較完善,但是較為臃腫。學習使用也較為複雜,比如學習ejb2,需要了解各種home接口。而在ejb3.0版本中,以簡化開發模型為中心進行重新設計,它将實體bean替換為pojo,實體中不需要有ejb專有的代碼,在邏輯上,他們仍然支援遠端與非遠端接口。

是以,今後我們以介紹ejb3.0版本為主進行介紹。

繼續閱讀