Eclipse軟件開發(fā)工具:JavaEE開發(fā)框架_第1頁
Eclipse軟件開發(fā)工具:JavaEE開發(fā)框架_第2頁
Eclipse軟件開發(fā)工具:JavaEE開發(fā)框架_第3頁
Eclipse軟件開發(fā)工具:JavaEE開發(fā)框架_第4頁
Eclipse軟件開發(fā)工具:JavaEE開發(fā)框架_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、JavaEE開發(fā)框架什么是開發(fā)框架建筑業(yè)(框架決定建筑的布局和面積)=軟件工程(框架決定了軟件系統(tǒng)的功能)從軟件分析和設計的角度框架是一個可復用的軟件架構解決方案規(guī)定了應用的體系結構,闡明了軟件體系結構中各層次間以及層次內部各組件間的依賴關系、責任分配和控制流程表現(xiàn)為一組接口、抽象類以及其實例之間協(xié)作的方法。從軟件實現(xiàn)的角度軟件快速實現(xiàn)的基礎平臺包含一組可重用的組件,使得某一領域內的軟件的基礎功能和通用流程的實現(xiàn)更加高效便捷使得開發(fā)人員可以專注于特定業(yè)務邏輯,提高軟件的開發(fā)效率。框架都具有一定的適用范圍,都是針對特定應用領域軟件開發(fā)的。不存在適合任何領域的萬能框架!框架的特點框架是一個應用程序

2、的半成品框架提供了可在應用程序之間共享的可覆用的公共結構。利用成熟的框架,開發(fā)者只需集中精力完成系統(tǒng)的業(yè)務邏輯設計框架一般是成熟,穩(wěn)健的,可處理系統(tǒng)很多細節(jié)問題,比如,事務處理,安全性,數(shù)據(jù)流控制等問題。多人使用,結構好,擴展性好,不斷升級,享受別人升級代碼帶來的好處。Dont Reinvent the Wheel!為什么需要框架企業(yè)應用大規(guī)模敏捷開發(fā)的需求多頁面導航、類型轉換(輸入數(shù)據(jù)和Java對象自動轉換)、信息校驗、國際化開發(fā)中的共性問題,無統(tǒng)一標準,無一套完整的解決方案基于框架的軟件開發(fā)優(yōu)點有確保開發(fā)質量。合理的規(guī)劃設計,針對共性問題提供了基礎實現(xiàn),歷經(jīng)大量軟件工程項目的實踐,從根本上

3、保證了軟件的穩(wěn)定性和擴展性。提高開發(fā)效率。框架的最大優(yōu)點即重用。重用包括兩個層次:一個是應用分析設計上的重用,框架已設計架構好了應用的整體架構及各層之間的接口關系,開發(fā)人員可以專注于業(yè)務領域的設計分析。二是代碼上的重用,框架中提供了一些通用功能組件的實現(xiàn),將在很大程度上減少開發(fā)人員工作量。通過框架,實現(xiàn)了對應用開發(fā)中底層API的封裝,降低了開發(fā)難度,大大提高了開發(fā)效率??蚣軜藴屎涂蚣軐崿F(xiàn)框架標準 vs 框架實現(xiàn)廠商可提供具體框架實現(xiàn),只有遵循框架標準,應用可在任何Java EE服務器環(huán)境中運行Java EE架構方面的標準規(guī)范JSF(Web表現(xiàn)層框架標準)JPA(數(shù)據(jù)持久化規(guī)范)業(yè)界主流的應用框

4、架實現(xiàn)Struts2SpringHibernateSeamWebworkJava EE的精髓將開發(fā)過程的基礎功能、通用特性相關實現(xiàn)委托容器,并由實現(xiàn)容器的應用服務器廠商完成框架規(guī)范中的組件在框架規(guī)范中的容器環(huán)境中運行,容器在運行時管理組件的各個方面容器由Java EE服務器廠商來提供實現(xiàn)組件開發(fā)人員因此可以專注業(yè)務邏輯,容器負責處理其他一切(安全、事務、持久化等)什么是JSFJSF是一個以組件為中心,基于MVC架構的,Web應用表現(xiàn)層的框架標準與Struts2等具體的框架實現(xiàn)不同,它不是一個具體的框架實現(xiàn),作為Java EE 標準的一部分,各廠商都可以提供自己的JSF實現(xiàn)Java EE SDK

5、中包含的是Sun的JSF實現(xiàn)還有Primefaces、OpenFaces、MyFaces等其他JSF實現(xiàn)許多論述中都把實現(xiàn)了JSF標準的框架統(tǒng)稱為JSF框架JSF是Web應用表現(xiàn)層的框架標準JSF是一個基于組件的框架標準JSF是一個基于MVC架構的框架JSF的優(yōu)點JSF是JavaEE規(guī)范中的一個部分只要遵循JSF標準,就能在任何一種Java EE 服務器上運行。開發(fā)人員基于JSF的應用也將能夠確保運行在更多的應用服務器上。JSF吸收了流行框架的優(yōu)點JSF標準廣泛吸收了當前流行的Web表現(xiàn)層框架如Struts2、Webwork、Seam等優(yōu)點,能夠更好地滿足開發(fā)人員的需求可與其他Java EE技

6、術無縫集成JSF已經(jīng)成為Java EE標準規(guī)范的一部分。當前的JSF標準已經(jīng)與CDI、Bean Validation等技術規(guī)范實現(xiàn)緊密結合,從而發(fā)揮Java EE解決方案的優(yōu)勢。Servlet、JSP vs. JSF在傳統(tǒng)的Java EE應用中,服務器端的處理由Servlet來完成Servlet組件技術僅從應用組件角度出發(fā),規(guī)定組件的工作接口、工作方式JSP技術構建動態(tài)Web頁面的組件技術,底層實現(xiàn)技術是Servlet技術在JSF應用中,當接收到客戶端的JSF請求后,由JSF框架中的核心控制組件FaceServlet對請求進行統(tǒng)一處理不同之處在于,JSF框架對請求處理過程定義了一整套標準化的處

7、理流程,它幫助開發(fā)人員完成了諸如輸入校驗、類型轉換和導航控制等功能,使得開發(fā)人員可以專注于業(yè)務邏輯的實現(xiàn)JSF框架技術從系統(tǒng)高度對Web應用開發(fā)的共性問題給出了一種標準解決方案構建Web應用的框架技術什么是JPA企業(yè)級應用主流開發(fā)方法面向對象的開發(fā)方法企業(yè)級應用主流數(shù)據(jù)存儲方式關系數(shù)據(jù)庫兩種不同領域中的業(yè)務信息表現(xiàn)形式Java中的對象之間的聯(lián)系關聯(lián)、繼承數(shù)據(jù)庫中的關系數(shù)據(jù)的聯(lián)系表外鍵、連接表JDBC開發(fā)存在的問題代碼繁瑣Java對象和關系數(shù)據(jù)之間的轉換解決方案:ORM持久化框架實現(xiàn)Java對象與關系數(shù)據(jù)之間自動映射的持久化框架(Object/Relation Mapping)這些持久化框架包括

8、Hibernate、iBatis、EclipseLink、TopLink和Apache OJB等為了促進Java EE 企業(yè)應用開發(fā),進一步規(guī)范ORM實現(xiàn),Java EE 5.0 規(guī)范中推出了JPA(Java Persistence API)。在Java EE 6.0規(guī)范中包含的JPA版本為2.0JPA內涵JPA是一個ORM的標準規(guī)范,而不是一個具體的ORM框架Java EE的本質就是一個標準規(guī)范的集合JPA定義了一種Java對象與關系數(shù)據(jù)之間的映射語言在更高層次上對數(shù)據(jù)庫的操作進行了封裝提供了一個操作持久化對象的標準接口支持數(shù)據(jù)持久化操作過程中的緩存、并發(fā)等高級既可運行在Java SE環(huán)境中

9、,也可運行在 Java EE中JPA應用的組成部分(1)持久化單元在JPA運行之前,開發(fā)人員需要告訴JPA關于數(shù)據(jù)庫連接的相關信息如數(shù)據(jù)源名稱等。關于數(shù)據(jù)庫的連接配置信息,都保存在一個稱為持久化單元的配置文件中。它其實是一個名為persistence.xml的文件(2)創(chuàng)建EntityEntity(3)操作EntityJPA框架提供了一個接口EntityManager來完成對Entity的操作,包括如何將Entity存儲到數(shù)據(jù)以及如何查詢Entity、如何更新Entity等。JPA中的Entity管理Entity的生命狀態(tài)及其轉換分層看業(yè)界的主流框架客戶端:Ajax Flex Extjs Jq

10、uery服務器端Web層:Struts2、JSF、SpringMVC數(shù)據(jù)持久化層:Hibernate、iBatis(MyBatis)整合:SpringMVC思想模型:數(shù)據(jù)模型(Model)用于封裝與應用程序的業(yè)務邏輯相關的數(shù)據(jù)以及對數(shù)據(jù)的處理方法。視圖:視圖(View)是用戶看到并與之交互的界面。控制器:控制器(Controller)起到不同層面間的組織作用,用于控制應用程序的流程。MVC設計思想視圖(View)代表用戶交互界面,對于Web應用來說,可以是HTML,也可能是jsp、XML和Applet等。一個應用可能有很多不同的視圖。MVC設計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以

11、及用戶的請求,而不包括在視圖上的業(yè)務流程的處理。業(yè)務流程的處理交予模型(Model)處理。比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型。MVC設計思想模型(Model):是業(yè)務的處理以及業(yè)務規(guī)則的制定。模型接受視圖請求的數(shù)據(jù),并返回最終的處理結果。業(yè)務模型的設計是MVC最主要的核心。MVC設計模式告訴我們,把應用的模型按一定的規(guī)則抽取出來,抽取的層次很重要,抽象與具體不能隔得太遠,也不能太近。MVC并沒有提供模型的設計方法,而只是組織管理這些模型,以便于模型的重構和提高重用性。業(yè)務模型還有一個很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實體對

12、象的數(shù)據(jù)保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫,從數(shù)據(jù)庫獲取訂單。我們可以將這個模型單獨列出,所有有關數(shù)據(jù)庫的操作只限制在該模型中。MVC設計思想控制(Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層并不做任何的數(shù)據(jù)處理。例如,用戶點擊一個連接,控制層接受請求后, 并不處理業(yè)務信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應多個視圖,一個視圖可能對應多個模型。Jsp

13、 model 1架構Model 1的基礎是JSP文件,它由一些相互獨立的JSP文件和其他一些Java Class組成。這些JSP從HTTP Request中獲得所需要的數(shù)據(jù),處理業(yè)務邏輯,然后將結果通過Response返前端瀏覽器。Model 1的應該說是唯一的好處是“簡單”,可以大大加快系統(tǒng)的開發(fā)進度。它把表現(xiàn)層和業(yè)務邏輯層柔和在一起,不利于以后的維護工作以及開發(fā)角色的分配,所以這種模式只能適合于小的系統(tǒng)開發(fā)。Jsp model 2架構Model 2采用面向對象技術實現(xiàn)MVC模式 從而擴展JSP/Servlet的模式。 Model2是MVC在Web上的應用。一個Model 2規(guī)范實現(xiàn)的Web

14、框架 Struts2的組成與工作原理Struts2是基于MVC模式的Web框架,Struts2框架按照MVC的思想主要有,控制器層,模型層,視圖組件。Struts2的組成與工作原理(1)模型組件:模型組件是實現(xiàn)業(yè)務邏輯的模塊,由JavaBean或者EJB構成。(2)視圖組件:視圖組件主要有:HTML、JSP和Struts2標簽,以及FreeMarker、Velocity等模板視圖技術。(3)控制器組件:控制器組件主要由一個StrutsPrepareAndExecuteFilter核心控制器和業(yè)務控制器Action組成。Struts2的處理流程圖 當用戶請求到達時,該Filter會過濾用戶的請求

15、。當請求轉入Struts2框架處理時會先經(jīng)過一系列的攔截器,然后再到Action。Struts2對用戶的每一次請求都會創(chuàng)建一個Action,Action是線程安全的。Hibernate?直接使用JDBC操作數(shù)據(jù)庫的步驟很繁瑣JDBC操作的是關系型數(shù)據(jù)庫我們用JAVA開發(fā)程序,則使用面向對象的思想Hibernate正是在這兩種不同的模型之間建立關聯(lián),Hibernate給我們提供了利用面向對象的思想來操作關系型數(shù)據(jù)的接口Hibernate與ORMHibernate體系結構Spring框架Spring框架是由世界著名的Java EE大師羅德約翰遜(Rod Johnson)發(fā)明的。Spring開源框架

16、簡介開源框架輕量級非入侵控制反轉(IoC)面向切面編程(AOP) 可以有效解決企業(yè)應用開發(fā)的復雜性。Spring使用基本的JavaBean(POJO)來完成事務。簡單、可測試和松耦合Spring是非侵入式的-Spring應用中的對象不依賴于Spring的特定類。Spring框架組成部分Spring是一個開源框架,它的功能都是從實際開發(fā)中抽取出來的,完成了大量Java EE開發(fā)中的通用步驟。Spring框架的主要優(yōu)勢之一是其分層架構,整個框架由7個定義良好的模塊(或組件)組成,它們都統(tǒng)一構建在核心容器之上,如圖所示。Spring框架的兩個核心特點控制反轉(IoC)面向切面編程(AOP) 控制反轉

17、(IoC) :Inversion of Control 依賴注入(DI) :Dependency Injection 當某個角色(比如一個Java實例,調用者)需要另一個角色(另一個Java實例,被調用者)的協(xié)助時,在傳統(tǒng)的程序設計過程中,通常由調用者來創(chuàng)建被調用者的實例。但在Spring里,創(chuàng)建被調用者的工作不再由調用者來完成,因此稱為控制反轉;創(chuàng)建被調用者實例的工作通常由Spring容器來完成,然后注入調用者,因此也稱為依賴注入。IoC簡介什么是IoCIoC是Inversion of Control的縮寫,被稱為控制反轉,也稱“依賴注入”。Spring的其他功能都構建在IoC之上先通過實際

18、例子,了解IoC的基本概念IoC(控制反轉)機制底層類的改變(變?yōu)镕loppyWriter)造成了高層類Business也必須改變(上段代碼中加黑部分為改動部分),這不是一個好的設計。造成這種弊端的顯著原因是,高層Business類依賴于底層類,如圖所示。IoC(控制反轉)機制在這段代碼中,原先的依賴關系發(fā)生了變化,如圖所示,高層類Business不再依賴于底層(被調用)的類,而是依賴于接口。依賴注入舉例(1)設值注入。setter注入是指使用類的setXXX方法對屬性進行賦值與之前一樣,先定義接口和底層類:public interface IWritervoid save();public

19、class UsbDiskWriter implements IWriterpublic void save()/把內容保存在U盤中public class FloppyWriter implements IWriterpublic void save()/把內容保存在Floppy盤中再編寫B(tài)usiness類,在其中增加定義一個setter方法,代碼如下:public class Businessprivate IWriter writer;/默認的構造器public Business()/設值注入所需的setter方法public void setWriter(IWriter writer)

20、this.writer = writer;public void save()writer.save();本例中,假設用戶要把內容保存在U盤,就要在配置文件中寫入:若想改存到Floppy盤,只需修改配置文件:(2)構造注入。構造方法注入,即通過調用帶參的構造方法注入所依賴的屬性。讓Spring在構造Business類實例時就順便為其完成依賴關系的初始化,要做到這一點不難,只要對前面Business類的代碼做簡單修改,代碼如下:public class Businessprivate IWriter writer;/默認的構造器public Business()/構造注入所需的帶參數(shù)的構造器pu

21、blic Business(IWriter writer)this.writer = writer;public void save()writer.save();構造注入的配置文件也需要做簡單的修改,改為使用元素指定構造器的參數(shù),代碼如下:IoC的使用IoC意指將設計好的類交給容器控制,容器負責實例化對象,并將對象依賴的屬性注入,從而得到一個可用的對象bean都需要在applicationContext.xml中使用元素配置通過ApplicationContext接口中的getBean方法,可以獲得IoC容器中的bean對象需要使用IoC的對象并不是所有對象都需要使用IoC,常常使用IoC的

22、對象有如下幾種服務層對象數(shù)據(jù)層對象表示層對象工廠類對象JMS的Queue、Topic對象針對接口編程,通過Spring配置文件注入IoC簡介不必關心組件的創(chuàng)建不必管理組件的生命周期組件容易共享測試非常容易優(yōu)點 將組件交給Spring容器管理,以“組裝積木”的方式來裝配組件。IoC簡介 問題:應用程序有個日志的需求,您可以無須修改任何一行程序代碼,就將這個需求加入到原先的應用程序中,而若您愿意,也可以在不修改任何程序的情況下,將這個日志功能移除。AOP簡介AOP(Aspect Oriented Programming)它是一種設計模式,用于實現(xiàn)一個系統(tǒng)中的某一個方面的應用。日志攔截授權認證 事務攔截方法緩存數(shù)據(jù)審計AOP簡介系統(tǒng)中具有的共性功能AOP簡介從應用模塊中主動去調用公共模塊,也就是應用模塊要很清楚公共模塊的功能,還有具體的調用方法才行,應用模塊是依賴于公共模塊的,是耦合的,這樣一來,要想修改公共模塊就會很困難了。有一個非常非常

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論