2012-07-23 40 views
2

我已經多次讀過EJB重量級的東西......但昨天晚上,我正在瀏覽關於EJB的Java EE 6教程,它們似乎只是普通的Java對象,除了它們可以具有諸如無狀態或單例之類的註釋之外。除此之外,它們(包括非常基本的)教程中包含的功能非常標準,就像MVC應用程序中的模型類一樣。什麼讓企業bean「重量級」?

  1. 那麼爲什麼會遇到對EJB很消極的態度?
  2. 爲什麼我看到它說,他們是絕對不需要絕大多數的網絡應用程序?
  3. 什麼使他們「重量級」?
+1

EJB爲企業應用程序帶來了許多好處,包括事務,消息傳遞,RPC等。額外的設計,編碼和應用程​​序服務器支持它們可能被認爲是「重量級」,如果您沒有選擇適當類型的EJB它可能會削弱你的表現。例如,在無狀態會話EJB可能已經足夠的情況下,實體EJB通常是性能崩潰的原因。 EJB需要「查找」和實例化,而遠程客戶端需要客戶端庫,通常需要J2EE應用服務器,如JBoss,WebLogic,WebSphere。 JBoss是開源的,但是後者是2 $$$。 – 2012-07-23 10:15:15

+0

-1如果你的消息來源不能提供任何這些點,那麼它們可能不是很好。同樣,EJB在EJB 3.1中有很長的歷史,因爲您在Java EE6中看到的內容與您在2004年可能見過的內容完全不同。我建議您也檢查源代碼中的日期。這個問題也是非常主觀和非常開放的。 – Justin 2012-07-23 10:15:24

+0

@MikeS EJB實體Bean(不要與JPA實體混淆!)完全不推薦使用,因此很少使用。 EJB不需要查找,但可以很容易地注入。什麼是J2EE應用程序服務器?你是否剛剛從2004年開始使用時間膠囊? – 2012-07-23 16:02:20

回答

5

有幾個原因讓EJB bean變得重量級。

第一個是羅德約翰遜的言辭。對於採用Spring的人來說,重要的是Rod要傳播EJB重量級的想法(因此Spring會自動輕量化)。 Springsource是一個商業組織,Rod是一個聰明的商人。用Spring的人越多,他們最終將從SpringSource購買支持合同的比例越大。

第二個來源是Spring狂熱分子,他從來沒有嘗試過EJB,但總是從Rod和其他狂熱分子那裏聽說EJB是重量級的。他們只是吟唱他們聽過的歌。

第三個來源是2004年和之前被EJB 2燒燬的人。這個版本的EJB的確是重量級的。當時人們回過頭來看EJB,從不回頭,完全沒有意識到EJB 3發生了,就像您觀察到一種非常輕巧且易於使用的技術一樣。