- Java EE輕量級解決方案:S2SH
- 邵峰晶編著
- 1529字
- 2018-12-30 08:33:20
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的一些特性。
- Learn Blockchain Programming with JavaScript
- Mastering Adobe Captivate 2017(Fourth Edition)
- 潮流:UI設(shè)計必修課
- PowerCLI Cookbook
- React Native Cookbook
- Mastering QGIS
- SSM輕量級框架應(yīng)用實戰(zhàn)
- TypeScript項目開發(fā)實戰(zhàn)
- Learning Zurb Foundation
- C++對象模型詳解
- Python數(shù)據(jù)結(jié)構(gòu)與算法(視頻教學(xué)版)
- Yii Project Blueprints
- Illustrator CC平面設(shè)計實戰(zhàn)從入門到精通(視頻自學(xué)全彩版)
- .NET Standard 2.0 Cookbook
- Lift Application Development Cookbook