成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaBeans、EJB和POJO詳解

開發 后端
本文向您講解J2EE中一些技術概念,包括JavaBeans、EJB、POJO等,這三種技術的每個技術在應用時都涉及兩個部分:容器部分和應用部分,本文將做詳細講解。

J2EE學習者越來越多,J2EE本身技術不斷在發展,涌現出各種概念,本文章試圖從一種輕易理解的角度對這些概念向初學者進行解釋,以便把握學習J2EE學習方向。
 
首先我們需要知道Java和J2EE是兩個不同概念,Java不只是指一種語言,已經代表與微軟不同的另外一個巨大陣營,所以Java有時是指一種軟件系統的流派,當然現在主要是.NET和Java兩大主流體系。  

J2EE可以說指Java在數據庫信息系統上實現,數據庫信息系統從早期的dBase、到Delphi/VB等C/S結構,發展到B/S(Browser瀏覽器/Server服務器)結構,而J2EE主要是指B/S結構的實現。  

J2EE又是一種框架和標準,框架類似API、庫的概念,但是要超出它們。假如需要具體了解框架,可先從設計模式開始學習。J2EE是一個虛的大的概念,J2EE標準主要有三種子技術標準:WEB技術、EJB技術和JMS,談到J2EE應該說最終要落實到這三個子概念上。
  
這三種技術的每個技術在應用時都涉及兩個部分:容器部分和應用部分,Web容器也是指Jsp/Servlet容器,你假如要開發一個Web應用,無論是編譯或運行,都必須要有Jsp/Servlet庫或API支持(除了JDK/J2SE以外)。 
 
Web技術中除了Jsp/Servlet技術外,還需要JavaBeans或Java Class實現一些功能或者包裝攜帶數據,所以Web技術最初裸體簡稱為Jsp/Servlet JavaBeans系統。  

談到JavaBeans技術,就涉及到組件構件技術(component),這是Java的核心基礎部分,很多軟件設計概念(設計模式)都是通過JavaBeans實現的。  

JavaBeans不屬于J2EE概念范疇中,假如一個JavaBeans對象被Web技術(也就是Jsp/Servlet)調用,那么JavaBeans就運行在J2EE的Web容器中;假如它被EJB調用,它就運行在EJB容器中。  

EJB(企業JavaBeans)是普通JavaBeans的一種提升和規范,因為企業信息系統開發中需要一個可伸縮的性能和事務、安全機制,這樣能保證企業系統平滑發展,而不是發展到一種規模重新更換一套軟件系統。  

至此,JavaBeans組件發展到EJB后,并不是說以前的那種JavaBeans形式就消失了,這就自然形成了兩種JavaBeans技術:EJB和POJO,POJO完全不同于EJB概念,指的是普通JavaBeans,而且這個JavaBeans不依附某種框架,或者干脆可以說:這個JavaBeans是你為這個應用程序單獨開發創建的。  

J2EE應用系統開發工具有很多:如JBuilder、Eclipse等,這些IDE首先是Java開發工具,也就是說,它們首要基本功能是可以開發出JavaBeans或Java class,但是假如要開發出J2EE系統,就要落實到要么是Web技術或EJB技術,那么就有可能要一些專門模塊功能(如eclipse需要lomboz插件),最重要的是,因為J2EE系統區分為容器和應用兩個部分,所以,在任何開發工具中開發J2EE都需要指定J2EE容器。  

J2EE容器分為WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器 Web容器等,其中Web容器直接使用Tomcat實現的。所以你開發的Web應用程序可以在上面兩種容器運行,而你開發的Web EJB應用則只可以在JBoss服務器上運行,商業產品Websphere/Weblogic等和JBoss屬于同一種性質。
  
J2EE容器也稱為J2EE服務器,大部分時它們概念是一致的。 
 
假如你的J2EE應用系統的數據庫連接是通過JNDI獲得,也就是說是從容器中獲得,那么你的J2EE應用系統基本與數據庫無關,假如你在你的J2EE應用系統耦合了數據庫JDBC驅動的配置,那么你的J2EE應用系統就有數據庫概念色彩,作為一個成熟需要推廣的J2EE應用系統,不推薦和具體數據庫耦合,當然這其中如何保證J2EE應用系統運行性能又是體現你的設計水平了。  

衡量J2EE應用系統設計開發水平高低的標準就是:解耦性;你的應用系統各個功能是否能夠徹底脫離?是否不相互依靠,也只有這樣,才能體現可維護性、可拓展性的軟件設計目標。  

為了達到這個目的,誕生各種框架概念,J2EE框架標準將一個系統劃分為WEB和EJB主要部分,當然我們有時不是以這個具體技術區分,而是從設計上抽象為表現層、服務層和持久層,這三個層次從一個高度將J2EE分離開來,實現解耦目的。  

因此,我們實際編程中,也要將自己的功能向這三個層次上靠,做到大方向清楚,涇渭分明,但是沒有技術上約束限制要做到這點是很不輕易的,因此我們還是必須借助J2EE具體技術來實現,這時,你可以使用EJB規范實現服務層和持久層,Web技術實現表現層;  

EJB為什么能將服務層從Jsp/Servlet手中分離出來,因為它對JavaBeans編碼有強制的約束,現在有一種對JavaBeans弱約束,使用Ioc模式實現的(當然EJB 3.0也采取這種方式),在Ioc模式誕生前,一般都是通過工廠模式來對JavaBeans約束,形成一個服務層,這也是是Jive這樣開源論壇設計原理之一。  

由此,將服務層從表現層中分離出來現在有兩種可選架構選擇:治理普通JavaBeans(POJO)框架(如Spring、JdonFramework)以及治理EJB的EJB框架,因為EJB不只是框架,還是標準,而標準可以擴展發展,所以,這兩種區別將來是可能模糊,被納入同一個標準了。 但是,個人認為:標準制定是為某個目的服務的,總要犧牲一些換取另外一些,所以,這兩種架構會長時間并存。 
 
這兩種架構分歧也曾經誕生一個新名詞:完全POJO的系統也稱為輕量級系統(lightweight),其實這個名詞本身就沒有一個嚴格定義,更多是一個吸引人的招牌,輕量是指輕易學習輕易使用嗎?按照這個定義,其實輕量Spring等系統并不輕易學習;而且EJB 3.0(依然叫EJB)以后的系統是否可稱為輕量級了呢?  

前面談了服務層框架,使用服務層框架可以將JavaBeans從Jsp/Servlet中分離出來,而使用表現層框架則可以將Jsp中剩余的JavaBeans完全分離,這部分JavaBeans主要負責顯示相關,一般是通過標簽庫(taglib)實現,不同框架有不同自己的標簽庫,Struts是應用比較廣泛的一種表現層框架。  

這樣,表現層和服務層的分離是通過兩種框架達到目的,剩余的就是持久層框架了,通過持久層的框架將數據庫存儲從服務層中分離出來是其目的,持久層框架有兩種方向:直接自己編寫JDBC等SQL語句(如iBatis);使用O/R Mapping技術實現的Hibernate和JDO技術;當然還有EJB中的實體Bean技術。  

持久層框架現在呈現百花齊放,各有優缺點的現狀,所以正如表現層框架一樣,現在沒有一個框架被指定為標準框架,當然,表現層框架現在又出來了一個JSF,它代表的頁面組件概念是一個新的發展方向,但是復雜的實現讓人有些忘而卻步。  
在所有這些J2EE技術中,雖然SUN公司發揮了很大的作用,不過總體來說:網絡上有這樣一個評價:SUN的理論天下無敵;SUN的產品用起來撞墻;對于初學者,非凡是那些試圖通過或已經通過SUN認證的初學者,趕緊擺脫SUN的陰影,立即開溜,使用開源領域的產品來實現自己的應用系統。  

最后,你的J2EE應用系統假如采取上面提到的表現層、服務層和持久層的框架實現,基本你也可以在無需深刻把握設計模式的情況下開發出一個高質量的應用系統了。  

還要注重的是: 開發出一個高質量的J2EE系統還需要正確的業務需求理解,那么域建模提供了一種比較切實可行的正確理解業務需求的方法,相關具體知識可從UML角度結合理解。 
 
當然,假如你想設計自己的行業框架,那么第一步從設計模式開始吧,因為設計模式提供你一個實現JavaBeans或類之間解耦參考實現方法,當你學會了系統基本單元JavaBean或類之間解耦時,那么系統模塊之間的解耦你就可能把握,進而你就可以實現行業框架的提煉了,這又是另外一個發展方向了。 
 
以上理念可以總結為一句話: 
 
J2EE開發三件寶: Domain Model(域建模)、patterns(模式)和framework(框架)。 

 

【編輯推薦】

  1. 給JavaBeans增加XPath功能
  2. Enterprise JavaBeans查詢語言
  3. Enterprise JavaBeans EJB技術
  4. 什么時候在EJB系統中使用XML
  5. 快速開發EJB和J2EE Web應用
責任編輯:佚名 來源: JavaEye
相關推薦

2009-06-12 11:06:35

EJB技術

2009-06-22 16:59:33

POJOSpringEJB 3.0

2009-06-11 15:26:05

EJB組件EJB容器

2009-06-11 16:25:44

EJB2.0EJB

2009-06-26 14:37:10

EJB和Spring

2009-06-12 12:46:59

EJB3.0

2009-06-26 14:29:03

2009-06-11 16:01:17

EJB容器

2009-06-11 16:53:09

什么是EJBEJB

2009-06-12 09:41:07

EJB3.0Spring

2009-06-26 14:21:08

JDOEJB CMPHibernate

2010-07-01 15:31:08

Java EE 6EJBWebService

2009-09-24 12:05:35

2009-06-12 10:16:27

EJB分類

2009-10-29 09:52:55

OSGi

2012-06-07 09:18:16

ibmdw

2009-06-25 16:35:12

EJB技術

2009-06-04 17:33:08

EJB 3.1EJB 3.0

2009-06-22 11:50:00

J2EE Web應用快速開發

2010-07-27 12:28:56

Flex Remote
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品美女久久久久久久网站 | 精品国产精品 | 成人精品国产一区二区4080 | 日日日干干干 | 免费国产视频 | 国产一区欧美一区 | 久久精品久久久 | www.亚洲视频.com | 久草成人网 | www.三级| 久操亚洲| 国产精品综合久久 | 精品久久久久久久久久久久久久 | av一区二区三区四区 | 在线播放一区二区三区 | 最近日韩中文字幕 | 国产成人av一区二区三区 | 人人看人人干 | 日本在线视频中文字幕 | 亚洲高清在线观看 | 秋霞国产| 欧美一区二区免费 | 日韩一区不卡 | 在线观看中文字幕dvd播放 | 国产综合在线视频 | 国产一区二区精品在线观看 | 激情六月天 | 欧美日韩在线观看一区二区三区 | 日韩欧美在线观看一区 | 久久99精品久久久久久国产越南 | 高清国产午夜精品久久久久久 | 欧美亚洲国产一区二区三区 | 天天操天天舔 | 色频| 成人在线不卡 | 成人国产在线视频 | 色视频在线播放 | 欧美精品一区在线 | a亚洲精品 | a毛片 | 精品在线99|