天才教育網(wǎng)合作機構 > 培訓機構 >

                                                                                        牛耳教育

                                                                                        歡迎您!
                                                                                        朋友圈

                                                                                        全國統一學(xué)習專(zhuān)線(xiàn) 9:00-21:00

                                                                                        位置:培訓資訊 > 初學(xué)者如何開(kāi)發(fā)出一個(gè)高質(zhì)量的J2EE系統(轉載)

                                                                                        初學(xué)者如何開(kāi)發(fā)出一個(gè)高質(zhì)量的J2EE系統(轉載)

                                                                                        日期:2010-08-11 14:57:24     瀏覽:348    來(lái)源:牛耳教育
                                                                                         J2EE學(xué)習者越來(lái)越多,J2EE本身技術(shù)不斷在發(fā)展,涌現出各種概念,本文章試圖從一種容易理解的角度對這些概念向初學(xué)者進(jìn)行解釋?zhuān)员阏莆諏W(xué)習J2EE學(xué)習方向。
                                                                                          首先我們需要知道Java和J2EE是兩個(gè)不同概念,Java不只是指一種語(yǔ)言,已經(jīng)代表與微軟不同的另外一個(gè)巨大陣營(yíng),所以Java有時(shí)是指一種軟件系統的流派,當然目前主要是.NET和Java兩大主流體系。

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

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

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

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

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

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

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

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

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

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

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

                                                                                          J2EE容器也稱(chēng)為J2EE服務(wù)器,大部分時(shí)它們概念是一致的。

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

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

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

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

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

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

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

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

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

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

                                                                                          在所有這些J2EE技術(shù)中,雖然SUN公司發(fā)揮了很大的作用,不過(guò)總體來(lái)說(shuō):網(wǎng)絡(luò )上有這樣一個(gè)評價(jià):SUN的理論天下無(wú)敵;SUN的產(chǎn)品用起來(lái)撞墻;對于初學(xué)者,特別是那些試圖通過(guò)或已經(jīng)通過(guò)SUN認證的初學(xué)者,趕快擺脫SUN的陰影,立即開(kāi)溜,使用開(kāi)源領(lǐng)域的產(chǎn)品來(lái)實(shí)現自己的應用系統。

                                                                                          *,你的J2EE應用系統如果采取上面提到的表現層、服務(wù)層和持久層的框架實(shí)現,基本你也可以在無(wú)需深刻掌握設計模式的情況下開(kāi)發(fā)出一個(gè)高質(zhì)量的應用系統了。

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

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

                                                                                          以上理念可以總結為一句話(huà):
                                                                                        J2EE開(kāi)發(fā)三件寶: Domain Model(域建模)、patterns(模式)和framework(框架)。

                                                                                          推薦一套高質(zhì)量的J2EE開(kāi)源系統: JPestore

                                                                                        關(guān)注牛耳教育 J2EE學(xué)習者越來(lái)越多,J2EE本身技術(shù)不斷在發(fā)展,涌現出各種概念,本文章試圖從一種容易理解的角度對這些概念向初學(xué)者進(jìn)行解釋?zhuān)员阏莆諏W(xué)習J2EE學(xué)習方向。
                                                                                          首先我們需要知道Java和J2EE是兩個(gè)不同概念,Java不只是指一種語(yǔ)言,已經(jīng)代表與微軟不同的另外一個(gè)巨大陣營(yíng),所以Java有時(shí)是指一種軟件系統的流派,當然目前主要是.NET和Java兩大主流體系。

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

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

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

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

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

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

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

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

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

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

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

                                                                                          J2EE容器也稱(chēng)為J2EE服務(wù)器,大部分時(shí)它們概念是一致的。

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

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

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

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

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

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

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

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

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

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

                                                                                          在所有這些J2EE技術(shù)中,雖然SUN公司發(fā)揮了很大的作用,不過(guò)總體來(lái)說(shuō):網(wǎng)絡(luò )上有這樣一個(gè)評價(jià):SUN的理論天下無(wú)敵;SUN的產(chǎn)品用起來(lái)撞墻;對于初學(xué)者,特別是那些試圖通過(guò)或已經(jīng)通過(guò)SUN認證的初學(xué)者,趕快擺脫SUN的陰影,立即開(kāi)溜,使用開(kāi)源領(lǐng)域的產(chǎn)品來(lái)實(shí)現自己的應用系統。

                                                                                          *,你的J2EE應用系統如果采取上面提到的表現層、服務(wù)層和持久層的框架實(shí)現,基本你也可以在無(wú)需深刻掌握設計模式的情況下開(kāi)發(fā)出一個(gè)高質(zhì)量的應用系統了。

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

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

                                                                                          以上理念可以總結為一句話(huà):
                                                                                        J2EE開(kāi)發(fā)三件寶: Domain Model(域建模)、patterns(模式)和framework(框架)。

                                                                                          推薦一套高質(zhì)量的J2EE開(kāi)源系統: JPestore

                                                                                        關(guān)注牛耳教育

                                                                                        如果本頁(yè)不是您要找的課程,您也可以百度查找一下:

                                                                                        奇米在线7777在线精品|国产成人精品免费视|精品无码不卡一区二区三区|国内综合精品午夜久久资源|亚洲视频在线观看..