JavaEE應用系統(tǒng)架構教學課件_第1頁
JavaEE應用系統(tǒng)架構教學課件_第2頁
JavaEE應用系統(tǒng)架構教學課件_第3頁
JavaEE應用系統(tǒng)架構教學課件_第4頁
JavaEE應用系統(tǒng)架構教學課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java EE應用系統(tǒng)架構2022/8/3鄭重Java EEJava EE是什么?Java Platform, Enterprise Edition Java EE是一種利用Java平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關的復雜問題的體系結構。Java EE以Java SE為基礎,為企業(yè)提供了完整的、穩(wěn)定的、安全的、快速的Java平臺。Java EE并不是一個技術而是一個標準。Java EE大綱Java EE應用系統(tǒng)架構公司現(xiàn)有主要框架介紹表現(xiàn)層業(yè)務邏輯層數(shù)據(jù)層架構分析課堂練習架構與框架的區(qū)別架構architecture 系統(tǒng)在其所處環(huán)境中的最高層次的劃分 IEEE。軟件架構 = 組件元素

2、,元素互助合作之模式,基礎要求與限制 。 架構設計就是將各組件元素以某些理想的合作模式組織起來以達成系統(tǒng)的基本功能和限制。框架framework 框架指的是一種機制,這種機制負責控制各協(xié)作對象之間的交互,比如Apache Struts框架,Microsoft MFC框架。 框架和類庫的差別:類庫中的基類是被用戶的類調用的,而框架中正相反,用戶的類會被框架調用。 Sun Java EE架構圖大綱Java EE應用系統(tǒng)架構公司現(xiàn)有主要框架介紹表現(xiàn)層業(yè)務邏輯層數(shù)據(jù)層架構分析課堂練習Java EE APP Arch JSPSession FacadeActionFormActionDelegate C

3、MP/BMPDAODatabase表現(xiàn)層 業(yè)務邏輯層 數(shù)據(jù)層 Struts框架EJB容器Application ServiceEJB容器Ejb3邏輯架構首次使用 ejb3.0 結合 hibernate 的持久化框架,同時實現(xiàn)了多數(shù)據(jù)源實時切換的spring 動態(tài)數(shù)據(jù)源注射機制。讓開發(fā)人員的核心工作從代碼實現(xiàn)轉移到商業(yè)邏輯的實現(xiàn)。SimpleORM架構大綱Java EE應用系統(tǒng)架構公司現(xiàn)有主要框架介紹表現(xiàn)層業(yè)務邏輯層數(shù)據(jù)層架構分析課堂練習表現(xiàn)層在此指用戶界面層和頁面邏輯層。該層封裝了實現(xiàn)客戶端表現(xiàn)的所有邏輯,包括的組件有Filter、JspTag 、JSP/Servlet等。我們在表示層中采用了

4、基于MVC的Struts框架。表現(xiàn)層過濾器: 是對請求資源和響應資源執(zhí)行過濾任務的一種策略web.xml文件中filter的片段 filterName top.struts.action.ValidatorFilter filterName *.do攔截過濾器Context策略: 按照協(xié)議無關的方式封裝狀態(tài),然后在整個應用系統(tǒng)中使用這種封裝后的對象。例:Struts框架的form很好屏蔽了對request的依賴。Context對象FrontController: 前端控制器目的是集中地、模塊化的進行請求和響應的管理。例:Struts框架的ActionServlet在Struts中起到了前端控制

5、的功能。前端控制器視圖助手: 目的是為了把視圖和相關的處理邏輯分離開。例:Struts利用JSP標準標記庫(JavaServer Pages Standard Tag Library)JSTL技術實現(xiàn)的一套標簽庫。視圖助手Control(Action)1.訪問業(yè)務邏輯2.準備頁面數(shù)據(jù)3.控制頁面跳轉View(Jsp+Tag)1.用表單采集數(shù)據(jù)2.用Tag顯示數(shù)據(jù)Model(ActionForm/VO)1.表單對象2.業(yè)務數(shù)據(jù)MVC大綱Java EE應用系統(tǒng)架構表現(xiàn)層業(yè)務邏輯層數(shù)據(jù)層架構分析課堂練習業(yè)務代表Delegate業(yè)務代表的四個作用:避免客戶端直接與業(yè)務服務接口交互,提高靈活性。提高網絡

6、傳輸性能,通過緩存數(shù)據(jù),避免與細粒度的服務多次的往返交互。避免客戶端代碼中包含底層架構代碼,包括命名服務JNDI,網絡連接故障處理等。將系統(tǒng)級異常轉換成應用級異常,對用戶更加友好。從傳統(tǒng)意義上來說,業(yè)務代表僅僅是一層薄薄的皮膚,它將所有的請求都轉發(fā)給業(yè)務服務組件。業(yè)務代表與會話門面是一一對應的。業(yè)務代表實現(xiàn)策略代理策略可以實現(xiàn)驗證,數(shù)據(jù)或引用的緩存等功能適配器策略與外部系統(tǒng)交互時,可以在業(yè)務代表外面包裝上適配器,提供給外部系統(tǒng)調用使用POJO(Plain Old Java Object)實現(xiàn)業(yè)務代表。會話門面Session Facade會話門面的作用:方法服務,將業(yè)務組件和粗粒度業(yè)務服務暴露給

7、遠程客戶端。降低遠程客戶端和細粒度的業(yè)務組件、業(yè)務服務交互造成的網絡負擔。使用Session Bean實現(xiàn)會話門面。會話門面中包含的業(yè)務邏輯應很少或一點兒也不包含,如果有業(yè)務邏輯,應該放在應用服務里。應用服務Application Service應用服務的作用:把多個業(yè)務層組件和服務之間的業(yè)務邏輯集中起來,聚合特定功能,提供一個統(tǒng)一的服務層。減少會話門面中的業(yè)務邏輯。讓某種業(yè)務邏輯調度多個業(yè)務對象或業(yè)務服務。在現(xiàn)存的業(yè)務層組件和服務之上提供一種粗粒度的服務API。需要在業(yè)務對象之外封裝專門針對特定用例的邏輯。通常使用POJO實現(xiàn)應用服務,特殊情況下可使用Session Bean 來實現(xiàn)。業(yè)務對

8、象模型業(yè)務對象模型的作用:把業(yè)務數(shù)據(jù)和業(yè)務邏輯分離出來。第一種策略是使用POJO,并選擇一種合適的持久化技術,比如Hibernate。第二種策略是使用entity bean。傳輸對象DTO(VO)傳輸對象的作用: 一個實體往往有多個屬性,為了避免在網絡上多次調用get/set方法來獲得實體的屬性,提高應用的性能。傳輸對象需要被序列化優(yōu)化前的數(shù)據(jù)傳輸 優(yōu)化前的數(shù)據(jù)傳輸代碼片段UserEntityHome objUserEntityHome= (UserEntityHome )Toolkit.getInstance() .getRemoteHome(“userEntityJNDIName“, Us

9、erEntityHome.class);UserEntityPK objUserEntityPK = new UserEntityPK (id);/得到實體對象UserEntity objUserEntity = objUserEntityHome.findByPrimaryKey(objUserEntityPK );objUserEntity.setName(“張三”);objUserEntity.setPassword(“123”);優(yōu)化后的數(shù)據(jù)傳輸 VO業(yè)務代表/會話門面EJB容器優(yōu)化后的數(shù)據(jù)傳輸代碼片段UserEntityHome objUserEntityHome= (UserEnt

10、ityHome )Toolkit.getInstance() .getRemoteHome(“userEntityJNDIName“, UserEntityHome.class);UserEntityPK objUserEntityPK = new UserEntityPK (id);/得到實體對象UserEntity objUserEntity = objUserEntityHome.findByPrimaryKey(objUserEntityPK );UserVO objUserVO= objUserEntity .getUserVO();objUserVO.setName(“張三”);o

11、bjUserVO.setPassword(“123”);objUserEntity.setUserVO(objUserVO);大綱Java EE應用系統(tǒng)架構公司現(xiàn)有主要框架介紹表現(xiàn)層業(yè)務邏輯層數(shù)據(jù)層架構分析課堂練習數(shù)據(jù)訪問對象DAO數(shù)據(jù)訪問對象的作用:可以按照復雜的條件進行查詢。可以返回批量的結果集??梢栽L問多種數(shù)據(jù)源,包括數(shù)據(jù)庫系統(tǒng)或者文件。通過Session Bean調用的DAO 存活于EJB容器內,此時可以進行事務管理業(yè)務代表直接調用的DAO在EJB容器外,不能進行事務管理DAO一般不進行增刪改,只進行查詢操作大綱Java EE應用系統(tǒng)架構公司現(xiàn)有主要框架介紹表現(xiàn)層業(yè)務邏輯層數(shù)據(jù)層架構分

12、析課堂練習類圖對象圖無數(shù)據(jù)庫事務的查詢對象圖沒有組合業(yè)務時對象圖有組合業(yè)務時對象圖有組合業(yè)務時的一種特例調用關系模塊AppService類都要繼承自BaseAppServic類;一個模塊的AppService對象可調用其它模塊的AppService對象;AppService對象可調用entityBean、AppService和DAO;AppService對象只能調用這三類對象; DAO中的方法必須是原子的,不能調sessionBean 或是其它DAO;調用關系6.Action、Man、DAO中不允許有業(yè)務方法。7.Man對象只能調用本模塊的sessionBean對象;8.sessionBean

13、只能調用本模塊的AppService對象;9.一個實現(xiàn)SessionFacade的sessionBean對象可直接調用多個DAO和EntityBean,但不可寫業(yè)務法;10.AppService對象實現(xiàn)所有業(yè)務層業(yè)務邏輯;11.AppService對象方法只能拋模塊異常。前端控制器ActionServletRequestProcessor視圖控制器Action業(yè)務代表Delegate業(yè)務實體Entity Bean會話門面Session Facade數(shù)據(jù)訪問對象DAO資源Databasestruts-config.xmlhttp請求轉發(fā)(*.do)分發(fā)訪問查詢數(shù)據(jù)訪問獲取/設置數(shù)據(jù)SQL語句值對

14、象VO訪問視圖JSP轉發(fā)(*.jsp)視圖JSP過濾器FilterJava EE APP Arch應用服務Application Service訪問top.app.module.actiontop.app.module.delegatetop.app.module.appservicetop.app.module.modeltop.app.module.ejbtop.app.module.ejb.entitytop.app.module.daotop.app.module.exception中間的.app.module表示項目組根據(jù)需要修改。其它要添加的類可以直接放在app.module目錄下。代碼的組織結構-java大綱Java EE應用系統(tǒng)架構公司現(xiàn)有主要框架介紹表現(xiàn)層業(yè)務邏輯層數(shù)據(jù)層架構分析課堂練習課堂練習使用公司的Java EE架構分析如何實現(xiàn)一個用戶注冊功能。具體要求如下:1、需要填寫用戶名、密碼、姓名、E-Mail。2、如果

溫馨提示

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

評論

0/150

提交評論