<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    javainthinking

    XL的個性空間和java學習之旅

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      13 隨筆 :: 13 文章 :: 20 評論 :: 1 Trackbacks
    J2EE學習者越來越多,J2EE本身技術不斷在發(fā)展,涌現(xiàn)出各種概念,本文章試圖從一種容易理解的角度對這些概念向初學者進行解釋,以便掌握學習J2EE學習方向。

      首先我們需要知道Java和J2EE是兩個不同概念,Java不只是指一種語言,已經代表與微軟不同的另外一個巨大陣營,所以Java有時是指一種軟件系統(tǒng)的流派,當然目前主要是.NET和Java兩大主流體系。

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

      J2EE又是一種框架和標準,框架類似API、庫的概念,但是要超出它們。如果需要詳細了解框架,可先從設計模式開始學習。

      J2EE是一個虛的大的概念,J2EE標準主要有三種子技術標準:WEB技術、EJB技術和JMS,談到J2EE應該說最終要落實到這三個子概念上。

      這三種技術的每個技術在應用時都涉及兩個部分:容器部分和應用部分,Web容器也是指Jsp/Servlet容器,你如果要開發(fā)一個Web應用,無論是編譯或運行,都必須要有Jsp/Servlet庫或API支持(除了JDK/J2SE以外)。

      Web技術中除了Jsp/Servlet技術外,還需要JavaBeans或Java Class實現(xiàn)一些功能或者包裝攜帶數(shù)據(jù),所以Web技術最初裸體簡稱為Jsp/Servlet+JavaBeans系統(tǒng)。

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

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

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

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

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

      J2EE容器分為WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用 Tomcat實現(xiàn)的。所以你開發(fā)的Web應用程序可以在上面兩種容器運行,而你開發(fā)的Web+EJB應用則只可以在JBoss服務器上運行,商業(yè)產品 Websphere/Weblogic等和JBoss屬于同一種性質。

      J2EE容器也稱為J2EE服務器,大部分時它們概念是一致的。

      如果你的J2EE應用系統(tǒng)的數(shù)據(jù)庫連接是通過JNDI獲得,也就是說是從容器中獲得,那么你的J2EE應用系統(tǒng)基本與數(shù)據(jù)庫無關,如果你在你的 J2EE 應用系統(tǒng)耦合了數(shù)據(jù)庫JDBC驅動的配置,那么你的J2EE應用系統(tǒng)就有數(shù)據(jù)庫概念色彩,作為一個成熟需要推廣的J2EE應用系統(tǒng),不推薦和具體數(shù)據(jù)庫耦合,當然這其中如何保證J2EE應用系統(tǒng)運行性能又是體現(xiàn)你的設計水平了。

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

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

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

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

      由此,將服務層從表現(xiàn)層中分離出來目前有兩種可選架構選擇:管理普通JavaBeans(POJO)框架(如Spring、 JdonFramework)以及管理EJB的EJB框架,因為EJB不只是框架,還是標準,而標準可以擴展發(fā)展,所以,這兩種區(qū)別將來是可能模糊,被納入同一個標準了。 但是,個人認為:標準制定是為某個目的服務的,總要犧牲一些換取另外一些,所以,這兩種架構會長時間并存。

      這兩種架構分歧也曾經誕生一個新名詞:完全POJO的系統(tǒng)也稱為輕量級系統(tǒng)(lightweight),其實這個名詞本身就沒有一個嚴格定義,更多是一個吸引人的招牌,輕量是指容易學習容易使用嗎?按照這個定義,其實輕量Spring等系統(tǒng)并不容易學習;而且EJB 3.0(依然叫EJB)以后的系統(tǒng)是否可稱為輕量級了呢?

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

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

      持久層框架目前呈現(xiàn)百花齊放,各有優(yōu)缺點的現(xiàn)狀,所以正如表現(xiàn)層框架一樣,目前沒有一個框架被指定為標準框架,當然,表現(xiàn)層框架現(xiàn)在又出來了一個JSF,它代表的頁面組件概念是一個新的發(fā)展方向,但是復雜的實現(xiàn)讓人有些忘而卻步。

      在所有這些J2EE技術中,雖然SUN公司發(fā)揮了很大的作用,不過總體來說:網絡上有這樣一個評價:SUN的理論天下無敵;SUN的產品用起來撞墻;對于初學者,特別是那些試圖通過或已經通過SUN認證的初學者,趕快擺脫SUN的陰影,立即開溜,使用開源領域的產品來實現(xiàn)自己的應用系統(tǒng)。

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

      還要注意的是: 開發(fā)出一個高質量的J2EE系統(tǒng)還需要正確的業(yè)務需求理解,那么域建模提供了一種比較切實可行的正確理解業(yè)務需求的方法,相關詳細知識可從UML角度結合理解。

      當然,如果你想設計自己的行業(yè)框架,那么第一步從設計模式開始吧,因為設計模式提供你一個實現(xiàn)JavaBeans或類之間解耦參考實現(xiàn)方法,當你學會了系統(tǒng)基本單元JavaBean或類之間解耦時,那么系統(tǒng)模塊之間的解耦你就可能掌握,進而你就可以實現(xiàn)行業(yè)框架的提煉了,這又是另外一個發(fā)展方向了。

      以上理念可以總結為一句話:
    J2EE開發(fā)三件寶: Domain Model(域建模)、patterns(模式)和framework(框架)。
    posted on 2005-08-02 17:07 XL的個性空間和java學習之旅 閱讀(1898) 評論(1)  編輯  收藏

    評論

    # re: 初學者如何開發(fā)出一個高質量的J2EE系統(tǒng) 2007-10-11 07:56 姜利陽
    Hello  回復  更多評論
      

    # re: 初學者如何開發(fā)出一個高質量的J2EE系統(tǒng) 2010-12-16 13:31 論文寫作發(fā)表
    論文發(fā)表不了?投稿甚久遲遲沒有音訊?QQ:809460389
    現(xiàn)在很多雜志社都有其固定合作的論文編輯部,編輯部負責征求相關稿件。散稿的錄取幾率為何如此之低?因為雜志社優(yōu)先考慮的是這些編輯部的稿件,實在沒有稿件之余才會考慮這些散稿的征用。
    本編輯與多家雜志社合作,核心、國家級、省級各類期刊。如果發(fā)現(xiàn)論文發(fā)表困難,遲遲沒有回音的,可以聯(lián)系我,我來幫您聯(lián)系!
    投稿郵箱:lunwen5180@sina.com
    Q Q號:809460389
    電話:13479894956 0792-4827209 網址:www.18lunwen.cn
    提供整體論文發(fā)表解決方案:省級論文/國家級論文/核心論文/CN論文。聯(lián)系人:郭編輯
    如有工作繁忙的朋友,我們提供專業(yè)的論文代寫業(yè)務,具體情況請與我們聯(lián)系。
      回復  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 中文字幕成人免费高清在线| 91在线亚洲综合在线| 中文字幕看片在线a免费| 亚洲成人一区二区| 免费精品久久久久久中文字幕| 日韩在线看片免费人成视频播放| 亚洲AV永久无码精品一福利| 国产精品免费视频播放器| 久久亚洲欧美国产精品| 免费a级毛片网站| 一级特黄特色的免费大片视频| 亚洲人成国产精品无码| 国产成人无码精品久久久久免费| 久久亚洲国产精品五月天婷| a色毛片免费视频| 亚洲电影一区二区| 日本免费网址大全在线观看| 亚洲中文字幕无码亚洲成A人片| 国产精品极品美女免费观看| 九一在线完整视频免费观看| 日韩亚洲欧洲在线com91tv| 啦啦啦完整版免费视频在线观看| 久久久久亚洲国产| 免费在线观看中文字幕| 亚洲五月午夜免费在线视频| 亚洲av午夜成人片精品网站| 免费视频爱爱太爽了| 亚洲色偷偷色噜噜狠狠99网| 精品国产无限资源免费观看| 亚洲中文字幕无码中文| 成人亚洲网站www在线观看| 成人妇女免费播放久久久| 亚洲人JIZZ日本人| 亚洲午夜免费视频| 亚洲色丰满少妇高潮18p| 国产乱弄免费视频| 久久这里只精品99re免费| 亚洲中文字幕一区精品自拍| 曰韩亚洲av人人夜夜澡人人爽| 1区2区3区产品乱码免费| 国产精品亚洲а∨无码播放不卡|