今天看 SPRing框架,但先要搞清楚幾個概念。網上查了一下大概摘抄如下:
POJO(Plain Old java Object)這個名字用來強調它是一個普通java對象,而不是一個特殊的對象。
2005年11月時,“POJO”主要用來指代那些沒用遵從特定的Java對象模型,約定或框架如EJB的Java對象.
理想地講,一個POJO是一個不受任何限制的Java對象(除了Java語言規范)。例如一個POJO不應該是
擴展預定的類,如 public class Foo extends javax.servlet.http.HttpServlet { ...
實現預定的接口,如 public class Bar implements javax.ejb.EntityBean { ...
包含預定的標注,如 @javax.ejb.Entity public class Baz{ ...
然后,因為技術上的困難及其他原因,許多兼容POJO風格的軟件產品或框架事實上仍然要求使用預定的標注,譬如用于更方便的持久化。
JavaBean 是一種JAVA語言寫成的可重用組件。它的方法命名,構造及行為必須符合特定的約定:
這個類必須有一個公共的缺省構造函數。
這個類的屬性使用getter和setter來訪問,其他方法遵從標準命名規范。
這個類應是可序列化的。
因為這些要求主要是靠約定而不是靠實現接口,所以許多開發者把JavaBean看作遵從特定命名約定的POJO。
簡而言之,當一個Pojo可序列化,有一個無參的構造函數,使用getter和setter方法來訪問屬性時,他就是一個JavaBean。
Enterprise Bean 與 JavaBean 不同。JavaBean 是使用 java.beans 包開發的,它是 Java 2 標準版的一部分。JavaBean 是一臺機器上同一個地址空間中運行的組件。JavaBean 是進程內組件。Enterprise Bean 是使用 javax.ejb 包開發的,它是標準 JDK 的擴展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多臺機器上跨幾個地址空間運行的組件。因此 Enterprise Bean 是進程間組件。JavaBean 通常用作 GUI 窗口小部件,而 Enterprise Bean 則用作分布式商業對象。
首先,EJB是指運行在EJB容器中的JavaBean。Tomcat是Web容器的參考實現。一個完整的JavaEE服務器應該包括Web容器和EJB容器。其次,Web容器中無法運行EJB,同時所有的JavaBean都是在服務器端運行的。如果有在客戶端的話,就變成c/s結構了。除非需要分布式處理,不然基本上不需要考慮EJB。Spring能幫你處理好除分布計算之外的一切。現在的JavaEE系統分這么幾個層,表現層(Struts、JSF等)+應用層(處理業務,可以是JavaBean也可以是EJB)+持久層(JDBC、Hibernate)
最后都推薦這本早有耳聞的 《領域驅動設計》
|
新聞熱點
疑難解答