我不會告知你我從今年年初就開始聽這個名詞,而到現(xiàn)在我都不能輕輕松松的說出我了解EJB,我懂EJB的,哎呀是否是太沒有研究精神了,由于之前1直聽師哥師姐1直在說EJB,感覺挺神秘的,現(xiàn)在來講還是挺神秘,由于自己也只是看了1些視頻查了1些資料,但是也算是邁出了揭開EJB神秘面紗的第1步。
其實每當說起這些哲學性的問題例如:是甚么,為何的時候我還是很心虛的,由于我也不知道這是甚么,當想知道1個東西是甚么的時候會怎樣做,固然是百度,百度對EJB的解釋是這樣的:EJB是sun的JavaEE服務器端組件模型,設計目標與核心利用是部署散布式利用程序。看完這樣的解釋照舊是1頭霧水,在1篇博客中看到:EJB是把你編寫的軟件中那些需要履行制定的任務的類,不放到客戶端軟件上而是把它打包放到1個服務器上(這個1開始我也沒有甚么體會,當你敲幾個例子的時候就會發(fā)現(xiàn)說的很有道理)
EJB的英文為:Enterprise JavaBean(企業(yè)級的JavaBean),那末企業(yè)級的JavaBean和JavaBean有甚么區(qū)分呢,JavaBean又是甚么?問題實在是有很多很多,先說JavaBean:用已有的知識來分析的話就可以說是JavaBean在MVC中的Model層,也就數(shù)數(shù)據(jù)層,用來設置數(shù)據(jù)的屬性,提供get/set方法。但是企業(yè)級的JavaBean好像和JavaBean有很多不同的地方首先EJB是基于遠程調用的,是支持散布式的;是由容器進行管理的。
開始也說到了,EJB是針對企業(yè)級的,那末他就是重量級的,好像大家現(xiàn)在對輕量級的東西比較感興趣,可以這么說吧:EJB是散布式利用和復瑣事務管理問題的好幫手,而目前很少有小的利用遇到這些問題,所以EJB在這樣的利用中就增加了沒必要要的復雜性,1個EJB解決方法可以比喻為1輛卡車,而1個WEB利用服務可以比作1輛小轎車,當我們需要履行1些像搬運大型對象之類的任務時,1輛卡車會被1輛小轎車高效很多。但是,當1輛卡車和小轎車做相同工作時,小轎車的靈活性、更容易操作!可能有1種殺豬焉用愛牛刀的趕腳。
EJB有3種組件類型:
類型 |
描寫 |
Session Bean(會話) |
會話bean將特定用戶的數(shù)據(jù)存儲為1個單1的會話。它可以是狀態(tài)或無狀態(tài)。它占用更少資源,相比于實體Bean。只要終止用戶會話,會話bean被燒毀。 |
Entity Bean(實體) |
實體bean代表持久性數(shù)據(jù)存儲。可將用戶數(shù)據(jù)保存到數(shù)據(jù)庫中,通過實體bean,后來就能夠檢索從數(shù)據(jù)庫中的實體bean。 |
Message Driven Bean(消息驅動) |
使用消息驅動bean上下文中的JMS(Java消息服務)。消息驅動Bean可以從外部實體消耗JMS消息,并采取相應的動作。 |
現(xiàn)在了解到就這么多,還處于1個意識模糊的狀態(tài),希望做完這個項目以后會有改觀。