簡體   English   中英

會話Bean和EJB3與Spring

[英]Session Beans and EJB3 vs Spring

我對EJB 3中Sessions Beans的功能感到好奇,以及它們是否可以在Spring的典型中型企業應用程序中被替換。

我發現這篇文章: http//drag0sd0g.blogspot.com/2010/01/session-bean-alternative-spring.html聲明如下: “由於大量使用注釋,你幾乎可以避免”XML Hell“使用EJB 3; Spring也不能這樣說。而且,因為它是Java EE標准不可或缺的一部分,所以EJB容器本身與JSF,JSP,servlet,JTA事務管理器,JMS提供程序等組件集成在一起, 使用Spring,您必須擔心您的應用程序服務器是否完全支持具有這些本機組件的框架以及其他高性能功能,如群集,負載平衡和故障轉移。如果您不擔心這樣的事情,然后春天根本不是一個糟糕的選擇“

你是否同意這種說法? 由於集合和管理功能,無狀態會話Bean過去被認為是一種非常強大的企業技術。 我的問題是:什么時候真的有必要使用EJB 3代替Spring或者除了Spring之外(假設在一家大公司中使用關鍵任務企業應用程序)?

看起來又是另一個Java EE vs. Spring帖子......

EJB / Java EE和Spring現在是兩個成熟,有競爭力的基於Java的技術堆棧。 通常沒有理由讓事情復雜化並混淆起來。 EJB實際上學習並使用了Spring等人的許多想法。

他們都沒有把你帶入XML /配置地獄。 兩者都相當容易上手,至少對於非常基本的東西。

Spring不僅僅是IoC / SOA /事務。 它更像是一個工具箱 - 它可以與ORM和事務,Web / MVC,安全性,定時器/調度等框架集成或直接提供。您可以精確選擇所需的部分。 您不必被迫使用容器(您可以在獨立的“桌面”應用程序中使用它)。

EJB是Java EE堆棧的一部分。 它是很好, 標准 它不像Spring那樣靈活,靈活,但根據定義,所有Java EE容器都支持它。

我更喜歡春天的自由,領先一步。

我不認為有很多情況下使用EJB 3而不是Spring是絕對必要的,但是有些情況下使用EJB 3會相當容易。 正如文章所述,EJB的主要優點是與各種其他JEE技術的集成,並且從EJB 3開始,Enterprise Beans比以前版本的規范更容易編寫。

在POJO或其他中間件技術上使用EJB的經典原因是事務。 如果您的業務邏輯需要是事務性的,那么EJB提供簡單的,聲明性的跨國划分以及通過容器與JTA的無縫集成。 雖然本文建議支持群集,負載平衡和性能管理是一個優勢,但這在很大程度上取決於您選擇的JEE應用服務器。

我說決定是否使用Spring或EJB 3的關鍵因素是你的容器。 如果您的目標容器是完全符合JEE 5+的應用程序服務器,並且您需要支持事務或消息傳遞等服務,那么EJB 3是顯而易見的選擇。 但是,如果您不需要與其他JEE技術集成或部署到輕量級應用服務器,那么使用EJB只會增加不必要的開銷。

如何讓人們認為EJB3使用一系列分散在幾個類上的java注釋來定義數據模型優於Hibernates簡單模型定義語法超出我的范圍。

它是一個可維護性的噩夢。 為什么你有一個交叉表? 它幾乎可以在代碼庫中的任何位置定義。 一些初級程序員使用注釋,現在你的java類與實際的數據庫不同步。

遇到了性能問題(你會)。 你不僅擁有經典的Hibernate“我不知道它正在使用什么SQL”你還有“我不知道為什么桌子就像這樣構建”的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM