国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
給初學(xué)者之八
沒錯(cuò),我沒敲錯(cuò)
之所以不再聲稱是企業(yè)級(jí)應(yīng)用而稱之為高級(jí)應(yīng)用 是因?yàn)橄旅嬉v的東西屬于純民間性質(zhì),是java具體應(yīng)用的上層建筑,可用可不用,沒有人強(qiáng)迫你用

首先給框架//framework 下一個(gè)定義
我想讀者你可能聽說(shuō)過(guò).net framework這個(gè)概念
沒錯(cuò),我們將要說(shuō)的framework也和這個(gè)framework差不多
所不同的是.net framework的競(jìng)爭(zhēng)對(duì)象是j2ee那一系列標(biāo)準(zhǔn),而我們將要說(shuō)到的幾個(gè)框架則應(yīng)用在j2ee的不同層面。單就單個(gè)框架而言,沒有.net framework管得那么多。但是卻要比它精專多了,而且總量加起來(lái),也遠(yuǎn)比微軟那一套框架要廣泛得多
回到正題,框架是什么?
軟件工程之所以被叫做軟件工程就是因?yàn)橛心敲匆慌擞X得可以用工程學(xué)里面,那些管理Project的方法來(lái)管理軟件從開發(fā)到維護(hù)這一系列流程。
那么在建筑工程里面框架是什么?
現(xiàn)在建筑多采用鋼筋混凝土結(jié)構(gòu),注意里面一個(gè)很重要的詞匯:鋼筋
托福閱讀中曾有一題聽力就是關(guān)于鋼筋結(jié)構(gòu)的誕生,在美國(guó)
恩,現(xiàn)代建筑中多在建筑起來(lái)之前,先用鋼筋搭建出一個(gè)框架出來(lái),然后往鋼筋中間填入混凝土,從而形成一個(gè)完成的建筑。而今天要說(shuō)到的框架就是這么一個(gè)東西在每一個(gè)軟件中間的實(shí)現(xiàn),框架就是那么一個(gè)通過(guò)預(yù)先寫好代碼從而幫我們建立起一個(gè)軟件結(jié)構(gòu)的這么一個(gè)東西。

這里提一下框架與規(guī)范//主要指J2ee規(guī)范也就是官方標(biāo)準(zhǔn)的區(qū)別
從某種意義上說(shuō),J2ee規(guī)范本身就是一個(gè)框架。無(wú)論是web容器也好,還是ejb容器也好,它們都開發(fā)了一部分通用的代碼。并且?guī)椭覀兇罱ㄆ饋?lái)了一個(gè)軟件結(jié)構(gòu),我們要做的就是往里面填入組件,比如ejb/servlet/jsp等等
沒錯(cuò),要這么理解也沒錯(cuò),但是為了避免混亂,我們還是嚴(yán)格區(qū)分開來(lái)。本文中將要提到的框架如無(wú)特別說(shuō)明,就是指的是非官方標(biāo)準(zhǔn)的框架,規(guī)范是規(guī)范,而框架是建立在規(guī)范之上的一種東西??梢哉f(shuō)是標(biāo)準(zhǔn)的延續(xù),或者說(shuō)是民間的嘗試,總之是這么一個(gè)非官方的東西。說(shuō)到這里順便提一下JCP組織也就是Java

Community Process/Java社區(qū)
當(dāng)初Sun公司在java發(fā)布之初,為了提倡開源和共項(xiàng)。同時(shí)也出于一個(gè)提出合理的標(biāo)準(zhǔn)的目的,而讓廣大的開發(fā)者參與標(biāo)準(zhǔn)的制定。而成立了這樣一個(gè)社區(qū),現(xiàn)在還健在,網(wǎng)址是jcp.org
每一個(gè)新的規(guī)范發(fā)布之前都會(huì)在這個(gè)社區(qū)廣泛討論,最終對(duì)規(guī)范的制定產(chǎn)生巨大的影響。其中就包括企業(yè)級(jí)的參與者,相當(dāng)有名的JBoss以及我國(guó)的金碟公司都是其中的成員

下面介紹一下幾個(gè)相當(dāng)著名的框架,必須要指出的是,雖然框架大多開源 但并不代表所有的框架都開源,比如.net framework,但是java框架大多數(shù)開源
言歸正傳
Struts
表示層框架,名字來(lái)源于飛機(jī)的金屬框架
可能有讀者會(huì)提問(wèn)了
表示層不是客戶端么?
沒錯(cuò),但是語(yǔ)言這東西,眾口爍金,別人都這么說(shuō)你就不好不這么說(shuō)了。最早表示層說(shuō)的是客戶端,后來(lái)隨著時(shí)間的發(fā)展。人們也把服務(wù)器端直接與客戶端//比如IE打交道的那部分也稱為表示層//JSP+Servlet
那么表示層框架是干什么的呢?
早先大規(guī)模應(yīng)用JSP的時(shí)候,人們發(fā)現(xiàn),JSP里面充斥著邏輯代碼與數(shù)據(jù)??勺x性極差,于是人們借用很早很早以前的MVC模式的思想。把表示層組件分為V-Viewer,也就是JSP
M-Model模型,一般來(lái)說(shuō)是一個(gè)JavaBean C-Controller控制器,一般來(lái)說(shuō)是一個(gè)Servlet 所有人通過(guò)JSP和服務(wù)器打交道,發(fā)送請(qǐng)求,Viewer把這個(gè)請(qǐng)求轉(zhuǎn)發(fā)給Controller
Controller通過(guò)調(diào)用一個(gè)Model來(lái)處理該請(qǐng)求,然后返回?cái)?shù)據(jù)到Viewer
這么一個(gè)過(guò)程,從而達(dá)到數(shù)據(jù)與邏輯的剝離,增強(qiáng)代碼可讀性,降低維護(hù)成本。

而幫助人們實(shí)現(xiàn)這一系列東西的就是Struts框架,就是這么一個(gè)東西。Struts的競(jìng)爭(zhēng)對(duì)手主要是產(chǎn)商們極力倡導(dǎo)的JSF也就是Java Server Faces
但是由于Struts出道時(shí)間早,所以應(yīng)用比較多。JSF則是產(chǎn)商們大力支持,前景看好。對(duì)于這一層來(lái)說(shuō),在JSP的html代碼中出現(xiàn)的java語(yǔ)句越少越好。因?yàn)閖ava代碼越少說(shuō)明頁(yè)面處理的業(yè)務(wù)邏輯越少,也越合理。這也是Struts最初的目的,記住這話

Spring 大名鼎鼎的Spring框架
有人曾說(shuō)2005年一片叫春之聲,指的就是該框架

Spring起源于Rod Johnson的《Expert One-on-One J2EE Design and Development》一書
Rod Johnson認(rèn)為,J2ee里面的那一套//尤其是ejb太重了,對(duì)于單機(jī)的系統(tǒng)來(lái)說(shuō),沒有必要使用那么復(fù)雜的東西
于是就開始設(shè)計(jì)并引導(dǎo)Spring小組開發(fā)出這樣一個(gè)構(gòu)架。不能不說(shuō)他是個(gè)天才,因?yàn)榈牡拇_確不是所有的系統(tǒng)都是跨多服務(wù)器的。沒有必要把一個(gè)簡(jiǎn)單的系統(tǒng)設(shè)計(jì)得那么復(fù)雜//天才的那幾個(gè)共性又體現(xiàn)出來(lái)了。
Spring從誕生之日起就是針對(duì)EJB的,力爭(zhēng)在不少應(yīng)用上取代EJB。而它也確實(shí)達(dá)到了這個(gè)目的。現(xiàn)在包括WebLogic等主流應(yīng)用服務(wù)器還有主流IDE都開始逐漸接受該框架,并提供相應(yīng)支持。提到Spring就不能不說(shuō)控制反轉(zhuǎn)Ioc//Inversion of Control和依賴注射DI//Dependency Injection
什么叫控制反轉(zhuǎn)呢?
套用好萊塢的一句名言就是:你呆著別動(dòng),到時(shí)我會(huì)找你。
什么意思呢?就好比一個(gè)皇帝和太監(jiān)
有一天皇帝想幸某個(gè)美女,于是跟太監(jiān)說(shuō),今夜我要寵幸美女
皇帝往往不會(huì)告訴太監(jiān),今晚幾點(diǎn)會(huì)回宮,會(huì)回哪張龍床,他只會(huì)告訴太監(jiān)他要哪位美女。其它一切都交由太監(jiān)去安排,到了晚上皇帝回宮時(shí),自然會(huì)有美女出現(xiàn)在皇帝的龍床上。這就是控制反轉(zhuǎn),而把美女送到皇帝的寢宮里面去就是注射。太監(jiān)就是是框架里面的注射控制器類BeanFactory,負(fù)責(zé)找到美女并送到龍床上去
整個(gè)后宮可以看成是Spring框架,美女就是Spring控制下的JavaBean。

而傳統(tǒng)的模式就是一個(gè)饑渴男去找小姐出臺(tái),找領(lǐng)班,幫助給介紹一個(gè)云云,于是領(lǐng)班就開始給他張羅。介紹一個(gè)合適的給他,完事后,再把小姐還給領(lǐng)班,下次再來(lái)。這個(gè)過(guò)程中,領(lǐng)班就是查詢上下文Context,領(lǐng)班的一個(gè)職能就是給客戶找到他們所要的小姐。這就是lookup()方法,領(lǐng)班手中的小姐名錄就是JNDI//Java Naming and Directory Interface。小姐就是EJB,饑渴男是客戶端,青樓是EJB容器。
看到區(qū)別了么?饑渴男去找小姐出臺(tái)很麻煩,不僅得找,用完后還得把小姐給還回去。而皇帝爽翻了,什么都不用管,交給太監(jiān)去處理,控制權(quán)轉(zhuǎn)移到太監(jiān)手中去了,而不是皇帝,必要時(shí)候由太監(jiān)給注射進(jìn)去就可以了。看到Spring的美妙了吧,Spring還提供了與多個(gè)主流框架的支持,可以和其它開源框架集成。
Hibernate
名字取材自O(shè)RM最早的一句玩笑話//ORM就是OR-Mapping
說(shuō)用了ORM之后,程序員就可以去冬眠了,而不需要操心那么多事。這里不得不說(shuō)的是,該框架由于做得太好,以至于被J2ee招安,成為EJB3.0的一部分。替代原有EJB2.X里面關(guān)于Entity Bean而成為EJB ORM的工具
這里解釋一下ORM//OR-Mapping
中文名對(duì)象關(guān)系映射
什么意思呢?我們知道傳統(tǒng)的數(shù)據(jù)庫(kù)都是關(guān)系型的,一條條記錄以表格的形式儲(chǔ)存,而表與表之間充斥著是關(guān)系/關(guān)聯(lián)。比如說(shuō)一個(gè)人,名字zhaoce,性別男,年齡23那么數(shù)據(jù)庫(kù)中是這么儲(chǔ)存的
姓名 性別 年齡 zhaoce m 23 某女 f 22 而實(shí)際應(yīng)用服務(wù)器中的實(shí)體都是以對(duì)象的形式存在,一個(gè)個(gè)對(duì)象
zhaoce是以這種形式存在的
Human human=new Human();
human.setName("zhaoce")
human.setSex("m");
human.setAge(23);
這樣的,那么我們知道,傳統(tǒng)的JDBC是通過(guò)一個(gè)二維字符串將數(shù)據(jù)取出。需要我們自己將其包裝成對(duì)象,在存入的時(shí)候,我們還需要將對(duì)象拆開。放入sql語(yǔ)句中//Insert into Huamn values('zhaoce','m',23)。然后執(zhí)行該sql語(yǔ)句
太麻煩太麻煩,ORM理念的提出改變了這一切,ORM認(rèn)為,這些東西應(yīng)該由框架來(lái)做,而不是程序員,程序員做他該做的,不要為這種破事分心,還測(cè)試半天。于是就出現(xiàn)了Hibernate,JDO,TopLink等等,甚至.net里面也有ADO.net。過(guò)去一段時(shí)間是Hibernate和JDO爭(zhēng)風(fēng),現(xiàn)在看來(lái)Hibernate逐漸成為主流并被官方接納
成為規(guī)范標(biāo)準(zhǔn)之一,替代掉原來(lái)EJB2.X的ORM EntityBean。
TopLink則是Oracle公司推出和Oracle數(shù)據(jù)庫(kù)結(jié)合的一種ORM。商業(yè)用軟件,貴且復(fù)雜,不過(guò)正在逐漸開放
而象表示層一樣,這一種專門面對(duì)數(shù)據(jù)層的代碼也被稱為數(shù)據(jù)持久層。所以數(shù)據(jù)持久層這一概念有時(shí)不僅僅指代數(shù)據(jù)庫(kù)。 關(guān)于ORM,最高的境界應(yīng)該是在java代碼中不出現(xiàn)任何一句的sql語(yǔ)句。
注意,是不包括sql語(yǔ)句,Hibernate的hql以及ejb的ejb-ql不算在內(nèi)。至于出現(xiàn)

不出現(xiàn)hql/ejb-ql等替代ql,這要視具體情況而定,不過(guò)最好也是不出現(xiàn) 。
當(dāng)然最后所說(shuō)的過(guò)分理想的情況往往不現(xiàn)實(shí),總之一句話。以sql為代表的ql/*還有hql,ejbql等*/語(yǔ)句在代碼中出現(xiàn)得越少越好。記住這話,現(xiàn)在未必能夠理解,學(xué)了以后就懂了。

這三個(gè)是目前最為常用的框架 而目前光已公布的框架就>500
還在不停增加中,不可能一一列舉,有興趣的可以去看相應(yīng)文檔 要指出的是框架不是應(yīng)用程序,只是一堆組件的有序復(fù)合,應(yīng)用時(shí)不能脫離于應(yīng)用服務(wù)器單獨(dú)存在。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
J2EE開發(fā)框架
目前流行框架的一些替代技術(shù)
Spring 學(xué)習(xí)一(了解Spring)
Ofbiz學(xué)習(xí)-3
為什么需要Spring
基于SSH的web技術(shù)介紹
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服