J2EE和EJB有什么關系?


其實j2EE就是java的企業版,與javaSE(標准版)有是有區別的,所以運行環境會有差異(簡單點可以說,這是兩組不同的接口),我們一般所熟悉的tomcat僅僅只實現了j2ee的一小部分規范,它只是一個serlvet的容器(Web)容器,它不能跑J2EE的程序,EJB說到底也是種規范,它是j2EE下面的一個子分類(核心類),所以j2ee包含EJB,同時我們都可以說JBOSS,Weblogic,WebSphere是J2EE容器,也可以叫EJB容器。因為它們能跑EJB組件。那么什么是EJB組件呢?其實就是java寫出來的一段程序被打包成EAR包,這個EAR包放在某個EJB的容器的特定目錄下啟動就可以跑了。類似於互聯網公司經常使用的WAR包(部署在tomcat上)。

如果有興趣,請詳細看

http://blog.csdn.net/jojo52013145/article/details/5783677

作者博文的前半部分講解的很好,把EJB的原理和底層概念講解了。但是后半部分EJB應用所遇到的架構問題我並不同意,因為從開發經驗上來說這無關於EJB的事,EJB應用同樣可以支持高並發,互聯網也會出現類似的數據庫瓶頸問題,真正的實踐上應該是文章下面的那個評論所回復的一樣: 客戶端通過http先傳到負載均衡服務器上,負載均衡服務器在把請求傳遞到接口服務器,接口服務器再通過RPC調用EJB組件對象實現業務功能,大部分時間內都是EJB組件間的調用(EJB服務器之間的調用),這些EJB組件都在內網。

 

當然,從知乎上看到J2EE技術棧似乎用的公司越來越少了,互聯網直接不用,用的是java web體系,Spring + tomcat + mybatis之類的快速輕量的開發。反而用的最多的是電網公司,電信這樣的運營商,還有銀行系統。原因似乎是J2EE不是很輕量,而且難調試,也難使用(但是又聽說最新的EJB已經越來越好用了簡潔強大,分布式事務處理很強)。其實如果成本和資源能較好把握,是不是電信等大型企業的系統也可以用互聯網的技術體系替換掉呢?而且效果也理想?

 

 

references:

https://www.zhihu.com/question/50665320

https://www.zhihu.com/question/40988395

https://www.zhihu.com/question/27505535


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM