官术网_书友最值得收藏!

1.3 Java EE架構(gòu)技術(shù)

Java EE的架構(gòu)技術(shù)很多,在Java EE應(yīng)用中可以以傳統(tǒng)的JSP作為表示層技術(shù),以一系列開源框架作為控制層、中間層和持久層的解決方案,并將這些開源框架有機地結(jié)合起來,使得Java EE應(yīng)用具有高度的可擴展性和可維護性。

1.3.1 JSP&Servlet

JSP和Servlet是Java EE中最早的規(guī)范,也是典型的Java EE技術(shù),直到現(xiàn)在,JSP依然廣泛應(yīng)用于各種Java EE開發(fā)中,充當(dāng)表示層的角色。

Servlet和JSP其實是完全統(tǒng)一的,二者在底層運行原理上是完全一樣的。運行時,JSP必須被Web服務(wù)器編譯成Servlet,所以真正在Web服務(wù)器中運行的是Servlet,真正提供HTTP服務(wù)的也是Servlet,因此廣義的Servlet包含JSP和Servlet。目前Java EE應(yīng)用中,已經(jīng)很少單純使用Servlet充當(dāng)表示層,因為這樣開發(fā)成本太高且不易維護,所以Servlet更多的是作為控制層組件來實現(xiàn)相應(yīng)的功能。

1.3.2 Struts2介紹

Struts是最早的MVC框架,其作者Craig McClanahan是JSP規(guī)范的制定者之一,并參與了Tomcat的開發(fā),所以從誕生的第一天起,就備受Java EE應(yīng)用開發(fā)者的青睞。多年來,Struts確實是Java EE應(yīng)用中使用最為廣泛的MVC框架,擁有廣泛的市場支持。

隨著Java EE項目復(fù)雜性的提高,原來的Struts框架已難以勝任更復(fù)雜的需求,于是Struts與另一個優(yōu)秀的MVC框架WebWork結(jié)合,誕生出了全新的Struts2。

Struts2擁有眾多優(yōu)秀的設(shè)計,吸收了傳統(tǒng)Struts和WebWork二者的精華,其目標(biāo)很簡單——使Web開發(fā)變得更加容易。為了達成這一目標(biāo),Struts2中提供了很多新特性,比如智能的默認設(shè)置、annotation的使用以及“慣例重于配置”原則的應(yīng)用(大大減少了XML配置)等。另一方面Struts2也減小了框架內(nèi)部的耦合度,開發(fā)人員還可以通過攔截器(可以自定義攔截器或者使用Struts2提供的攔截器)對請求進行預(yù)處理和后處理,如此處理請求就變得更加模塊化,進一步減小了耦合度。

1.3.3 Hibernate介紹

Hibernate是一個開源的、輕量級的ORM(Object Relation Mapping)持久化框架,它允許應(yīng)用程序以面向?qū)ο蟮姆绞絹聿僮麝P(guān)系型的數(shù)據(jù)庫,負責(zé)將對象數(shù)據(jù)保存到關(guān)系型數(shù)據(jù)庫中和從關(guān)系型數(shù)據(jù)庫中讀取數(shù)據(jù)并封裝成對象的工作。通過簡單的配置和編碼即可替代JDBC煩瑣的程序代碼。

Hibernate最大的優(yōu)點就在于以面向?qū)ο蟮姆绞教幚沓志没瘮?shù)據(jù),從而很好地解決了面向?qū)ο蟮腏ava語言與關(guān)系型數(shù)據(jù)庫之間數(shù)據(jù)表示形式不一致的矛盾。在Java語言中,數(shù)據(jù)可以存儲在實體對象中,同時實體對象之間具有繼承、多態(tài)和聚合等特點,而在數(shù)據(jù)庫中存儲的是二維關(guān)系數(shù)據(jù),表與表的關(guān)系只有主外鍵關(guān)聯(lián)關(guān)系,Hibernate的引入可以解決上述矛盾。

1.3.4 Spring介紹

Spring框架是Java EE應(yīng)用的全方位解決方案,它貫穿表示層、業(yè)務(wù)層和持久層。Spring本身還提供了一個MVC框架:Spring MVC,使用Spring框架可以直接使用該MVC框架,也可以方便地與其他MVC框架集成。Spring框架能與大多持久層框架無縫整合,如Hibernate、iBATIS、OJB等,也可以直接使用JDBC。如此,Spring像一個中間層容器,向上可以與MVC框架整合,向下可以和各種持久層框架整合,將系統(tǒng)中的各部分組件以松散的方式結(jié)合在一起。

Spring作為一個一站式的Java EE解決方案,滲透了Java EE技術(shù)的方方面面,它主要用來實現(xiàn)依賴注入、面向切面的編程、聲明式事務(wù)以及對持久層的支持和簡化等功能。

S2SH集成框架就是Struts2+Spring+Hibernate,使用此集成框架使Java EE應(yīng)用更加健壯、穩(wěn)固、輕巧和優(yōu)雅,也是當(dāng)前最流行的輕量級Java EE技術(shù)框架。

1.3.5 EJB3.0介紹

EJB(Enterprise JavaBean)是一種用于分布式應(yīng)用的標(biāo)準(zhǔn)服務(wù)器端組件模型。EJB是構(gòu)造可移植、可重用以及可伸縮的業(yè)務(wù)應(yīng)用程序的平臺。從EJB誕生開始,EJB就被號稱為可構(gòu)造的企業(yè)級Java組件模型或框架,提供事務(wù)、安全、自動持久化等構(gòu)造服務(wù)。

EJB組件有三種類型,分別是會話Bean、實體Bean和消息驅(qū)動Bean。會話和消息驅(qū)動Bean用于實現(xiàn)EJB應(yīng)用中的業(yè)務(wù)邏輯,而實體Bean用于持久化。

由于EJB2.0的復(fù)雜性,在Spring和Hibernate等輕量級框架出現(xiàn)后,大量的用戶轉(zhuǎn)向了輕量級框架開發(fā),于是出現(xiàn)了EJB3.0規(guī)范。相對于EJB2.0,EJB3.0做到了盡可能的簡單和輕量化,它的兩個重要的變更是使用了JDK5.0中的注解工具和輕量型的JPA(Java Persistence API,Java持久化API)。EJB3.0規(guī)范的簡化也得到Java社區(qū)的充分認可,且Spring框架也集成了JPA,并實現(xiàn)了EJB3.0的一些特性。

主站蜘蛛池模板: 建水县| 吉水县| 湖北省| 南召县| 安顺市| 横山县| 沧州市| 栾川县| 塔城市| 肇东市| 娄烦县| 泸溪县| 白银市| 阿尔山市| 乌拉特前旗| 楚雄市| 曲松县| 惠来县| 深州市| 莱阳市| 和田县| 郑州市| 米林县| 油尖旺区| 青神县| 金秀| 浦县| 洪泽县| 松原市| 南木林县| 西盟| 佳木斯市| 海门市| 宁都县| 皋兰县| 通渭县| 天柱县| 湘潭县| 土默特右旗| 油尖旺区| 镶黄旗|