基于J2EE架構的企業(yè)級組件開發(fā)技術課件_第1頁
基于J2EE架構的企業(yè)級組件開發(fā)技術課件_第2頁
基于J2EE架構的企業(yè)級組件開發(fā)技術課件_第3頁
基于J2EE架構的企業(yè)級組件開發(fā)技術課件_第4頁
基于J2EE架構的企業(yè)級組件開發(fā)技術課件_第5頁
已閱讀5頁,還剩171頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于J2EE架構的企業(yè)級組件開發(fā)技術劉煒上海大學計算機學院liuw@基于J2EE架構的企業(yè)級組件開發(fā)技術劉煒課程簡介在軟件工程理論、高級程序設計語言的基礎上,掌握基于JavaEE的企業(yè)級開發(fā)環(huán)境、架構和開發(fā)技術,掌握面向對象和面向組件的編程思想,熟悉各種面向對象的軟件設計模式。自主開發(fā)或改寫一個基于JAVAEE平臺的開源組件系統(tǒng)。課程簡介在軟件工程理論、高級程序設計語言的基礎上,掌握基于J課程目標(1)立足于企業(yè)級的JAVAEE架構技術,基于組件的軟件開發(fā)思想。(2)講授系統(tǒng)級的開發(fā)方法,從需求分析到設計及實現(xiàn)。(3)通過工程化訓練,構筑一個完整的軟件系統(tǒng),實踐javaee軟件開發(fā)全過程。課程目標(1)立足于企業(yè)級的JAVAEE架構技術,基于組課程內容結構Java6.0編程語言JavaEE架構技術JSP、Servlet和JavaBean相關技術Struts2,Hibernate,Spring等JavaEE框架面向對象的設計模式開源項目分析與開發(fā)(討論)課程內容結構Java6.0編程語言課程安排..第一講:組件開發(fā)與JavaEE技術概述(3學時)概括地講解什么是組件和組件開發(fā),講解JavaEE技術框架。使學生站在宏觀角度看待JavaEE和JavaEE組件開發(fā)技術。第二講:Java6.0編程基礎(3學時)1.JavaEE編程基礎2.Java6語言新特性:增強的for循環(huán)、注釋、枚舉、泛型、靜態(tài)導入等3.JavaEEAPIs要求:掌握Java編程基礎知識,面向對象的基本概念,Java類的編寫與測試,掌握Java5的一些新特性。重點:Java語言、面向對象語言的特性,Java類的編寫、編譯和測試難點:Java6的新特性:增強的for循環(huán)、注釋、枚舉、泛型、靜態(tài)導入等課程安排..第一講:組件開發(fā)與JavaEE技術概述(3學時..課程安排..第三講:JSP、Servlet和JavaBean相關技術(3學時)1.Jsp相關技術詳解Web應用和Web.xml文件JSP基本原理JSP的10個基本指令JSP的9個內置對象JSP2特性2.Servlet相關技術詳解Servlet的工作原理Servlet的開發(fā)Servlet的配置3.JavaBean的開發(fā)與使用4.Filter和Listener要求:掌握Jsp、Servlet和Javabean的相關技術。重點:Jsp的工作原理,編寫Jsp程序難點:Jsp2特性,Servelet的工作原理..課程安排..第三講:JSP、Servlet和JavaBe..課程安排..第四講:Struts2應用及替代技術(3個學時)1.MVC簡介2.Struts2體系結構3.Struts2基本應用及工作流程4.Struts2標簽庫應用5.Struts2攔截器6.Struts2國際化應用7.Struts2綜合應用實例8.其他替代技術要求:了解MVC開發(fā)模式,理解MVC三層模式的工作原理;了解Struts2的體系結構及工作原理;掌握Struts開發(fā)流程(包括程序的編寫和配置)。重點:Struts的工作原理和開發(fā)流程。難點:Struts的體系結構以及工作原理,標簽庫和攔截器的工作原理。..課程安排..第四講:Struts2應用及替代技術(3..課程安排..第五講:Hibernate3及替代技術(3個學時)1.ORM和流行的ORM框架介紹2.Hibernate概述3.對象/關系數據庫映射(ORM)、基本的映射方式4.Hibernate體系結構5.Hibernate深入使用6.HQL語言的使用7.Hibernate的事務控制要求:掌握ORM的工作原理,掌握基本的映射方式,掌握使用Hibernate編寫JAVAEE應用的數據庫訪問層,掌握Hibernate的配置、映射文件的編寫、關聯(lián)映射、繼承映射等,熟悉HQL語言的使用。重點:Hibernate的配置和使用、HQL語言的使用難點:Hibernate的關聯(lián)映射..課程安排..第五講:Hibernate3及替代技術(..課程安排..第六講:Spring及替代技術(3個學時)1.Spring的起源和背景2.Spring的下載和安裝3.Spring的核心機制:依賴注入4.Spring容器配置5.Spring的資源訪問6.Spring的AOP7.Spring的事務管理8.Spring和Struts整合9.Spring和Hibernate整合要求:掌握Spring的安裝和配置,掌握Spring的核心機制,掌握Spring容器的配置,了解SpringAOP、Spring的事務管理機制;掌握Spring和Struts及Hibernate的整合方法。重點:Spring的核心機制,Spring的容器配置,Spring和Struts、Hibernate的整合。難點:Spring的核心機制,Spring的AOP。..課程安排..第六講:Spring及替代技術(3個學..課程安排..第七講:

Spring、Struts、Hibernate整合開發(fā)(3個學時)1.學生項目管理系統(tǒng)應用背景2.JAVAEE編程結構3.系統(tǒng)功能介紹4.系統(tǒng)的設計概要設計數據庫設計5.實現(xiàn)DAO層6.實現(xiàn)Service層7.實現(xiàn)Web層要求:掌握JAVAEE編程環(huán)境的配置,掌握簡單的JAVAEE應用系統(tǒng)開發(fā)流程,掌握JAVAEE相關技術的應用。重點:基于MVC模式的JAVAEE開發(fā)流程。難點:如何將功能需求用JAVAEE技術轉化成應用程序。..課程安排..第七講:Spring、Struts、Hib..課程安排..第八講:JavaEE常用的設計模式(3個學時)1.面向對象設計模式簡介2.JAVAEE與設計模式3.單例模式4.工廠模式5.觀察者模式6.抽象類模式7.接口模式要求:掌握設計模式在JAVAEE應用開發(fā)中的使用方法,掌握幾種常見設計模式的原理和編寫方式。重點:常見面向對象設計模式的使用。難點:如何在系統(tǒng)設計中使用設計模式。..課程安排..第八講:JavaEE常用的設計模式(3..課程安排..第九講:項目研討(5-6個學時)學生匯報所分析和開發(fā)的項目;教師和學生進行點評和提問;第十講:android移動開發(fā)..課程安排..第九講:項目研討(5-6個學時)課程考核方式課程成績=項目分析與研討(50%)+課程論文或技術報告(50%)課程考核方式課程成績=項目分析與研討(50%)+課程論文或技參考項目元搜索引擎語義Web應用程序(本體編程)全文檢索系統(tǒng)WebUIAndroid移動互聯(lián)網應用機器學習(文本分類、聚類應用)網絡爬蟲SNS語義分析MVC框架參考項目元搜索引擎參考書 《輕量級JavaEE企業(yè)應用實戰(zhàn)》,李剛《瘋狂Java講義》,李剛《開發(fā)自己的搜索引擎---Lucene+Heritrix》,邱哲,符滔滔,王學松編著《Web3.0與SemanticWeb編程》,(美)赫布勒…等參考書 《輕量級JavaEE企業(yè)應用實戰(zhàn)》,李剛第一講:組件開發(fā)與JAVAEE概述劉煒上海大學計算機學院liuw@第一講:組件開發(fā)與JAVAEE概述劉煒目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)軟件領域的發(fā)展程序設計方法的發(fā)展軟件需求的變化軟件環(huán)境的變化軟件開發(fā)模式的變化軟件領域的發(fā)展程序設計方法的發(fā)展程序設計方法的發(fā)展功能分解法——計算任務結構化程序設計——以數據為中心面向對象程序設計——以對象為中心組件程序設計——以組件為中心綜合使用程序設計方法的發(fā)展功能分解法——計算任務綜軟件需求的變化計算實用管理(MIS)分布式系統(tǒng)軟件需求的變化計算實用管理(MIS)分布式系統(tǒng)軟件環(huán)境的變化單任務多任務文字界面圖形界面單線程多線程平臺相關跨平臺單機(本地)網絡(分布式)單一語言多種語言軟件環(huán)境的變化單任務多任務文字界面圖形界面單線程多線程平臺相軟件開發(fā)模式機器碼高級語言和腳本代碼OS+Compiler+EditorOS+Compilers+IDEs+Libraries+Wizards+Components+otherinforstructures+經驗軟件開發(fā)模式機器碼高級語言OS+Compiler+E對象技術用一種新的思路來看待問題10多年的發(fā)展證明了OO符合軟件的規(guī)律對象技術的發(fā)展需要開發(fā)工具和開發(fā)語言的支持三大特性:封裝性、繼承性、多態(tài)性四個要點:對象+類+繼承+消息通信對象技術用一種新的思路來看待問題面向對象技術弱點在中小規(guī)模的軟件中,對象和對象之間的協(xié)作關系就能夠滿足需要。但是當軟件規(guī)模擴大,復雜度上升的時候,面向對象技術強調的協(xié)作卻表現(xiàn)出另一個極端的特點-耦合度太高導致的復雜度。這時候就需要有一種新的方法來彌補面向對象技術的弱點。面向對象技術弱點在中小規(guī)模的軟件中,對象和對象之間的協(xié)作關系大規(guī)模軟件的特點大規(guī)模軟件主要特點是復雜度。比較典型的例子是集成性的項目。軟件系統(tǒng)需要將各種各樣的硬件、遺留系統(tǒng)、外部接口整合起來。其間可能遇到不同的硬件接口,不同的操作系統(tǒng),不同的語言,不同的平臺,不同的數據庫,不同的消息中間件,不同的網絡介質。這些都使得系統(tǒng)變得非常的復雜。面向對象技術的特點是通過對象之間的職責分工和高度協(xié)作來完成任務。這樣的好處是代碼量較少,系統(tǒng)布局合理,重用程度高。但是當對象的個數大量增加的時候,對象之間的高度耦合的關系將會使得系統(tǒng)變得復雜,難以理解。大規(guī)模軟件的特點大規(guī)模軟件主要特點是復雜度。比較典型的例子是大規(guī)模軟件的特點以前對于這個問題的方法是采用包作為容器來組織對象,對象之間的依賴性將轉化為包之間的依賴性。這種方法聽起來有道理,但是在實際中仍會出現(xiàn)難以解決的問題。包僅僅只是容器。這意味著對對象的組織可以是任意的,而包之間依賴關系的設計則還是取決于對象的依賴。此外,包的設計和對象一樣,缺乏一個統(tǒng)一的風格。而統(tǒng)一的風格正是大規(guī)模軟件設計所必須的,因為這樣可以有效改進系統(tǒng)的可理解性,這一點非常重要。大規(guī)模軟件的特點以前對于這個問題的方法是采用包作為容器來組織面向組件編程面向組件編程的縮寫是COP。COP是對OOP的補充,幫助實現(xiàn)更加優(yōu)秀的軟件結構。組件的粒度可大可小,需要取決于具體的應用。在COP中有幾個重要的概念:服務,服務(Service)是一組接口,供客戶端程序使用。例如,驗證和授權服務,任務調度服務。服務是系統(tǒng)中各個部件相互調用的接口;組件,組件(Component)實現(xiàn)了一組服務,此外,組件必須符合容器訂立的規(guī)范,例如,初始化,配置、銷毀。COP是對一種組織代碼的思路,尤其是服務和組件這兩個概念。在Spring框架中,就采用了COP的思路,將系統(tǒng)看作一個個的組件,通過定義組件之間的協(xié)作關系(通過服務)來完成系統(tǒng)的構建。這樣做的好處是能夠隔離變化,合理的劃分系統(tǒng)。而框架的意義就在于定義一個組織組件的方式。面向組件編程面向組件編程的縮寫是COP。COP是對OOP的補關于組件定義:軟件開發(fā)和重用的單位構成:接口和實現(xiàn)運行環(huán)境:容器驅動機制:框架可視化組件-包括外觀,事件和屬性控件非可視化組件-包括業(yè)務方法及其實現(xiàn)服務,業(yè)務邏輯形態(tài):DLL,JSP,Jar等關于組件定義:軟件開發(fā)和重用的單位組件的粒度組件的粒度是和系統(tǒng)的架構息息相關的。組件的粒度確定了,系統(tǒng)的架構也就確定了。在小規(guī)模的軟件中,可能組件的粒度很小,僅相當于普通的對象,但是對于大規(guī)模的系統(tǒng)來說,一個組件可能包括幾十,甚至上百個對象。因此,對使用COP技術的系統(tǒng)來說,需要正確的定義組件的粒度。較好的定義粒度的方法是對核心流程進行分析。組件的粒度組件的粒度是和系統(tǒng)的架構息息相關的。組件的粒度確定針對接口編程接口和實現(xiàn)分離是COP的基礎,沒有接口和實現(xiàn)的分離,就沒有COP。接口的高度抽象特性使得各個組件能夠被獨立的抽取出來,而不影響到系統(tǒng)的其它部分。針對接口編程接口和實現(xiàn)分離是COP的基礎,沒有接口和實現(xiàn)的分接口和實現(xiàn)分離的好處在模塊/組件/對象之間解耦。輕松的抽換實現(xiàn),而不用修改客戶端。用戶只需要了解接口,而不需要了解實現(xiàn)細節(jié)。增加了重用的可能性。接口和實現(xiàn)分離的好處在模塊/組件/對象之間解耦。基于組件開發(fā)的好處實現(xiàn)了各類人員的分工合作促進了代碼重用降低應用開發(fā)的難度大大提高了軟件開發(fā)效率提升了軟件的質量便于分配任務和控制進度基于組件開發(fā)的好處實現(xiàn)了各類人員的分工合作目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)主流Web開發(fā)技術.NETJavaEE(J2EE)LAMP(Linux+Apache+Mysql+PHP)RubyonRails前三者曾經三足鼎立,R&R異軍突起主流Web開發(fā)技術.NET前三者曾經三足鼎立,R&R異軍突起LAMPLAMP:LAMP是一個縮寫,它指一組通常一起使用來運行動態(tài)網站或者服務器的開源軟件,包括:Linux操作系統(tǒng),Apache網絡服務器,MySQL數據庫,Perl、PHP或者Python編程語言。核心:PHP領域:大型商業(yè)網站,如開心網、校內網、Discuz等LAMPLAMP:LAMP是一個縮寫,它指一組通常一起使用來RubyonRailsRails是一個用于開發(fā)數據庫驅動的網絡應用程序的完整框架。Rails基于MVC(模型-視圖-控制器)設計模式。從視圖中的Ajax應用,到控制器中的訪問請求和反饋,到封裝數據庫的模型,Rails為你提供一個純Ruby的開發(fā)環(huán)境。發(fā)布網站時,你只需要一個數據庫和一個網絡服務器即可。各類機構,從初創(chuàng)公司、非贏利性組織到企業(yè)集團都在使用Rails。Rails是一個基礎框架,適用于開發(fā)各類網絡應用程序。至于這個程序究竟是團隊合作平臺,社區(qū),電子商務,內容管理或者統(tǒng)計系統(tǒng),則由你來決定。國內先驅:“RubyonRails是一個重大突破,大大降低了編程的門檻。以前需要數周或數月才能實現(xiàn)的強力網絡應用程序,現(xiàn)在只需要幾天而已?!?/p>

-TimO'Reilly,O'Reilly媒體創(chuàng)始人

RubyonRailsRails是一個用于開發(fā)數據庫驅JavaEE經過多年沉淀,JavaEE平臺已經成為電信、金融、電子商務、保險、證券等各行業(yè)的大型系統(tǒng)的首選開發(fā)平臺。目前Java行業(yè)的軟件開發(fā)已經基本穩(wěn)定,幾年內沒有出現(xiàn)具有廣泛影響的新技術。我們說的JavaEE,大致分為兩種方式:(1)以Spring為核心的輕量級JavaEE企業(yè)開發(fā)平臺。(2)以EJB3+JPA為核心的經典JavaEE開發(fā)平臺。JavaEE經過多年沉淀,JavaEE平臺已經成為電信、JavaEE案例(業(yè)界)…JavaEE案例(業(yè)界)目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)JAVA&J2EEJava和JavaEE是兩個不同概念,Java不只是指一種語言,已經代表與微軟不同的另外一個巨大陣營,所以Java有時是指一種軟件系統(tǒng)的流派,目前主要是.NET和Java兩大主流體系。目前JAVA2有三個平臺:適用于小型設備和智能卡的Java2平臺Micro版(Java2PlatformMicroEdition,J2ME)適用于桌面系統(tǒng)的Java2平臺標準版(Java2PlatformStandardEdition,J2SE)適用于創(chuàng)建服務器應用程序和服務的Java2平臺企業(yè)版(Java2PlatformEnterPriseEdition,J2EE)。JAVA&J2EEJava和JavaEE是兩個不同概念WhatisJavaEE

運用Java技術開發(fā)企業(yè)應用的標準包括了多層應用開發(fā)模型開發(fā)平臺-APIs和服務測試軟件包參考實現(xiàn)將所有Sun的企業(yè)技術集合在一個體系結構下的平臺特定版本下的EJB,Servlet,JSPJavaWebServerJNDI,JDBC,JTA,JMS,JavaMail,CORBA…WhatisJavaEE

運用Java技術開發(fā)企業(yè)應用WhatisJavaEE今天我們說的JavaEE應用,超出了Sun所提出的經典JavaEE應用規(guī)范,而是一種更廣泛的開發(fā)規(guī)范。經典JavaEE應用以EJB(企業(yè)級JavaBean)為核心,以應用服務器為運行環(huán)境,所以開發(fā)、運行成本高。我們的培訓介紹的輕量級JavaEE應用具備了JavaEE規(guī)范的種種特征,例如面向對象建模的思維、優(yōu)秀的應用分層及良好的擴展性、可維護性。輕量級JavaEE保留了經典JavaEE應用的架構,但開發(fā)更簡單,成本更低。WhatisJavaEE今天我們說的JavaEE應用JavaEE技術架構任何平臺Java虛擬機JavaEEFramework安全組件組件組件組件JCAebXMLJTAJMS…JavaEE技術架構任何平臺Java虛擬機JavaEEJavaEE應用的分層模型(1)不管是經典的JavaEE架構還是輕量級JavaEE架構,大致上可以分為以下幾層:DomainObject(領域對象)層:此層有系列的POJO(PlainOldJavaObject,普通傳統(tǒng)的Java對象)DAO(DataAccessObject,數據訪問對象)層:此層由系列的DAO組成,這些DAO實現(xiàn)了對數據庫的創(chuàng)建、查詢、更新和刪除(CRUD)等原子操作。JavaEE應用的分層模型(1)不管是經典的JavaEEJavaEE應用的分層模型(2)業(yè)務邏輯層:此層由系列的業(yè)務邏輯對象組成,這些業(yè)務邏輯對象實現(xiàn)了系統(tǒng)所需要的業(yè)務邏輯方法。這些業(yè)務邏輯方法可能僅僅用于暴露DomainObject對象所實現(xiàn)的業(yè)務邏輯方法,也可能是依賴DAO組件實現(xiàn)的業(yè)務邏輯方法??刂破鲗樱捍藢佑邢盗锌刂破鹘M成,這些控制器用于攔截用戶請求,并調用業(yè)務邏輯組件的業(yè)務邏輯方法,處理用戶請求,并根據處理結果轉發(fā)到不同的表現(xiàn)層組件。表現(xiàn)層:此層有系列的jsp頁面、Velocity頁面、PDF文檔視圖組件組成,負責收集用戶請求,并顯示處理結果。JavaEE應用的分層模型(2)業(yè)務邏輯層:此層由系列的業(yè)JavaEE應用分層結構數據庫DomainObject層DAO層業(yè)務邏輯層MVC控制器層表現(xiàn)層提供持久化服務封裝提供數據訪問服務提供業(yè)務邏輯實現(xiàn)顯示各層代碼通過松散耦合方式組合在一起,不以硬編碼方式組合。JavaEE應用分層結構數據庫DomainObject組件,框架和容器之間的關系UI組件邏輯組件數據組件事件調用調用客戶端請求容器事件處理框架業(yè)務處理數據訪問請求數據處理流程組件數據庫組件,框架和容器之間的關系UI組件邏輯組件數據組件事件調用調框架的作用為組件運行提供基礎服務為組件開發(fā)提供基礎類實現(xiàn)了組件之間的隔離支持組件間的協(xié)作管理組件生命周期運行于容器之內框架的作用為組件運行提供基礎服務JavaEE應用的組件(1)JavaEE大致包括如下幾個組件:表現(xiàn)層組件:主要負責收集用戶輸入數據和向用戶顯示系統(tǒng)狀態(tài)。最常用的表現(xiàn)層技術就是JSP,還可以有Velocity,FreeMarker和Taperstry等技術,也可以用應用程序充當表現(xiàn)層組件??刂破鹘M件:對于JavaEE的MVC框架而言,框架提供一個前端核心控制器,負責攔截用戶請求,并將請求轉發(fā)給控制器組件,控制器組件調用業(yè)務邏輯方法,處理用戶請求。控制器組件有Struts,SpringMVC等。JavaEE應用的組件(1)JavaEE大致包括如下幾個JavaEE應用的組件(2)業(yè)務邏輯組件:系統(tǒng)的核心組件,實現(xiàn)系統(tǒng)的業(yè)務邏輯。通常,一個業(yè)務邏輯方法對應一次用戶操作。一個業(yè)務邏輯方法應該是一個整體,因此我們要求對業(yè)務邏輯方法增加事務性,業(yè)務邏輯方法僅僅負責實現(xiàn)業(yè)務邏輯,不應該進行數據庫訪問,因此,在業(yè)務邏輯層不應該出現(xiàn)Hibernate,JDBC等API。DAO組件:數據訪問對象組件。每個DAO組件都提供DomainObject對象基本的CRUD操作。采用不同的持久層訪問技術,DAO組件的實現(xiàn)會完全不同。為了業(yè)務邏輯組件的實現(xiàn)與DAO組件的實現(xiàn)分離,我們?yōu)槊總€DAO組件提供接口,業(yè)務邏輯組件面向DAO接口編程,從而達到最好的解耦。JavaEE應用的組件(2)業(yè)務邏輯組件:系統(tǒng)的核心組件,JavaEE應用的組件(3)領域對象組件:領域對象抽象了系統(tǒng)的對象模型。通常而言,這些領域對象的狀態(tài)都必須保存在數據庫里。因此,每個領域對象通常對應一個或多個數據表,領域對象通常需要提供對數據記錄的訪問方式。JavaEE應用的組件(3)領域對象組件:領域對象抽象了系應用的構成數據庫邏輯組件數據組件注冊頁面購物流程注冊流程充值流程登陸流程登陸頁面充值頁面購物頁面商品服務認證服務帳戶服務支付服務訂單服務帳戶DAO商品DAO訂單DAOUI組件流程組件領域對象組件帳戶POJO商品POJO訂單POJO應用的構成數據庫邏輯組件數據組件注冊頁面購物流程注冊流程充值JavaEE的優(yōu)勢用簡單的Jsp就能完成,為什么還要用Spring,Hibernate這些技術?軟件開發(fā)不僅僅考慮開發(fā)過程,還要考慮后期的維護、擴展;不僅僅考慮那些小型系統(tǒng),還要考慮大型系統(tǒng)的協(xié)同開發(fā)。對于大型系統(tǒng)而言,采用JavaEE架構有很大優(yōu)勢。軟件不是一次性系統(tǒng),在軟件的更新?lián)Q代中,不是徹底替換軟件,只能在其原來基礎上延伸。如果支撐企業(yè)系統(tǒng)的軟件不具備擴展性,將損失慘重。對于信息化系統(tǒng),前期開發(fā)工作對于整個系統(tǒng)工作量而言只是一小部分,后期的維護、升級往往占更大比重,極端情況下,企業(yè)需求發(fā)生重大變化,這些都要求軟件具有很好的伸縮性。JavaEE可以讓軟件系統(tǒng)中組件以松耦合的方式組織在一起,讓應用之間的耦合停留在接口層次,而不是代碼層次。JavaEE的優(yōu)勢用簡單的Jsp就能完成,為什么還要用SpJavaEE的優(yōu)勢保留現(xiàn)存的IT資產高效的開發(fā)支持異構環(huán)境堅持面向對象的設計原則靈活性、可移植性和互操作性輕松的企業(yè)信息系統(tǒng)集成引進面向服務的體系結構JavaEE為搭建具有可伸縮性、靈活性、易維護性的商業(yè)化系統(tǒng)提供了良好的機制:

JavaEE的優(yōu)勢保留現(xiàn)存的IT資產JavaEE為搭建具HOW?J2EE如此龐大!怎樣入手學習?HOW?J2EE如此龐大!怎樣入手學習?最佳途徑J2EEwithoutEJBSimplifytheBest:輕量框架Pragmatic的企業(yè)應用開發(fā)Kickstart最佳途徑J2EEwithoutEJB目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)概念理清JAVA技術流(以Java作為開發(fā)語言的技術)Java2平臺(以j2se為核心api)Java2EE架構規(guī)范JDBC,JNDI,JMS…EJB非EJBJ2EE容器JSP,Servelet...概念理清JAVA技術流(以Java作為開發(fā)語言的技術)Jav相關概念JavaEE=JavaEE容器+Web應用JavaEE容器包括EJB容器和Web容器Web容器是指Jsp/Servlet容器,你如果要開發(fā)一個Web應用,無論是編譯或運行,都必須要有Jsp/Servlet庫或API支持(除了JDK/J2SE以外)。相關概念JavaEE=JavaEE容器+Web應用JavaWeb服務器常見的Web服務器有三個:Tomcat:開源的javaweb服務器,和Java結合得最好,Sun官方推薦的Jsp服務器。性能和穩(wěn)定性都非常優(yōu)秀。Jetty:另一個優(yōu)秀的Web服務器,最大優(yōu)點是可以作為嵌入式服務器。加入在應用中加入Jetty的jar文件,應用可以在代碼中對外提供Web服務。Resin:目前最快的Jsp、Servlet運行平臺,支持EJB。JavaWeb服務器常見的Web服務器有三個:專業(yè)JavaEE服務器JavaEE服務器支持更多的JavaEE特性,例如分布式事務、EJB容器等。常見的JavaEE服務器有:JBoss:開源的JavaEE服務器,支持EJB3.0。Weblogic和Websphere:兩個專業(yè)的商用JavaEE服務器,價格不菲,性能非常出色。對于輕量級JavaEE應用而言,JavaWeb容器完全能勝任。專業(yè)JavaEE服務器JavaEE服務器支持更多的JavJavaEE與設計模式模式1:JSP+JavaBeans以JavaBean封裝部分業(yè)務處理邏輯的開發(fā)模型這種模式的最大優(yōu)勢是實現(xiàn)起來比較簡單,適合快速開發(fā)小規(guī)模的項目。模式2:MVC(Model-View-Controller)合理使用了Servlet和JSP的各自特點,Servlet負責業(yè)務流程的控制,Bean負責業(yè)務數據的邏輯處理,JSP專注于頁面表示。各個層次的責任明確而且獨立,開發(fā)和維護非常容易。系統(tǒng)的可擴展性也比較好。JavaEE與設計模式模式1:JSP+JavaBeans典型的MVCFrameworkStrutsSpringMVCTapestryWebworkJSF典型的MVCFrameworkStruts我們選擇的技術路線與開源產品技術路線:Struts2+Spring+Hibernate,SSHSpring作為核心MVC三層模式開源技術:

Tomcat,Hibernate,JBoss,MySQL,Struts,Spring,Hibernate,Acegi,JMS,QuartzJasperReport,iReport,JFreeChart,JBPM……我們選擇的技術路線與開源產品技術路線:開源技術:SSH:優(yōu)秀的輕量級JavaEE架構Struts2+Spring+Hibernate或SpringMVC+Spring+Hibernate,新的MVC軟件開發(fā)模式Struts2(SpringMVC)進行流程控制,Spring進行業(yè)務流轉,Hibernate進行數據庫操作的封裝,這種新的開發(fā)模式讓我們的開發(fā)更加方便、快捷、思路清晰!SSH無需專業(yè)的JAVAEE服務器,只需簡單的Web服務器就可以運行。大多數組件和Web服務器都是開源和免費的。SSH:優(yōu)秀的輕量級JavaEE架構Struts2+Sp相關技術:JSP、Servlet3.0和JavaBean及替代技術Jsp是最早的JavaEE規(guī)范之一,也是最經典的JavaEE技術之一。目前,Jsp仍然充當JavaEE應用的表現(xiàn)層角色。Servlet和Jsp完全統(tǒng)一,二者在底層的運行原理完全一樣,Jsp必須被Web服務器編譯成Servlet,真正在Web服務器運行的是Servlet,可以把Jsp看做是“草稿”文件,用于生產Servlet,真正提供HTTP服務的是Servlet。Servlet開發(fā)成本高,難以維護。JavaEE的中間層組件將應用底層的狀態(tài)信息封裝為JavaBean,也稱為DTO(數據傳輸對象)。Freemarker和Velocity可以替代Jsp作為表現(xiàn)層技術。相關技術:JSP、Servlet3.0和JavaBean及替相關技術:Struts2及替代技術Struts2是一個優(yōu)雅的,可擴展的JAVAEEweb框架。相關技術:Struts2及替代技術Struts2是一個優(yōu)雅的相關技術:Struts2及替代技術Struts是世界最早的MVC框架,是JavaEE應用中使用最廣泛的MVC框架。Struts2擁有眾多優(yōu)秀設計,吸收了傳統(tǒng)的Struts和WebWork的精華。Struts2以WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業(yè)務邏輯控制器能夠與ServletAPI完全脫離開。其他替代技術:SpringMVC,JSF,Tapestry。相關技術:Struts2及替代技術Struts是世界最早的M69Spring簡介Spring是一個開源框架,是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。依賴注入—set注入Loginlog=newLogin();Log.iuserDao=UsersDAO對象名.msg=“world”69Spring簡介Spring是一個開源框架,是為了解決Spring簡介SpringFramework是種非侵入式輕量級框架,允許自由選擇和組裝各部分功能,也提供了和其他很多軟件集成的接口,如與Hibernate、Struts的集成。Spring主要功能有DependencyInjection、SpringContext、SpringAOP、SpringORM、SpringDAO、SpringMVC。Spring簡介SpringFramework是種非侵入式輕Spring用法下載springFramework最新版本,將其下的*.jar拷貝到項目lib中,并引用。在Web.xml中配置spring的啟動方式:Listener方式或Servlet方式。設置Spring配置文件。通常在系統(tǒng)運行前完Spring成初始化工作,因此在Web.xml中配置一個初始化Servlet。Spring用法下載springFramework最新版本,Spring優(yōu)勢利用延時注入思想組裝代碼,提高系統(tǒng)擴展性,靈活性,實現(xiàn)插件式編程。利用AOP思想,集中處理業(yè)務邏輯,減少重復代碼,構建優(yōu)雅的解決方案。利用HibernateTransactionManager類封裝Hibernate事務管理,其是AOP思想的典型運用,使持久層操作代碼簡潔精悍?!璖pring優(yōu)勢利用延時注入思想組裝代碼,提高系統(tǒng)擴展性,靈73Hibernate簡介Hibernate能幫助我們利用面向對象的思想,開發(fā)基于關系型數據庫的應用程序第一:將對象數據保存到數據庫第二:將數據庫數據讀入對象中73Hibernate簡介Hibernate能幫助我們利用面Hibernate對象到關系型數據映射(ORM)是架構中熱門的話題,人們希望用ORM工具從單調的SQL中解脫出來,規(guī)范數據層的開發(fā),提高開發(fā)效率。Hibernate也是實現(xiàn)這樣的功能。Hibernate性能穩(wěn)定、參考文檔齊全,有專門的組織提供升級與技術支持。Hibernate對象到關系型數據映射(ORM)是架構中熱門Hibernate-搭建環(huán)境從下載hibernate最新發(fā)行包。然后將hibernate相關jar包加入項目lib,并引用。影射文件。影射類。加載配置信息。Hibernate-搭建環(huán)境從www.hibernate.o76SSH結構分析Jsp頁面struts2springhibernatedatabaseView層Controller層Model層客戶端請求解釋用戶的輸入,映射為model層可執(zhí)行的操作返回值Jsp頁面根據返回值選擇恰當的視圖以用于顯示76SSH結構分析Jsp頁面struts2springhibJavaEE邏輯結構圖Struts/SpringMVC數據庫IOCAOP事務管理HibernateTemplateOrJdbcTemplateServiceJSPJSTLWEBUI/AJAXEntityDAOSERVICEPOOLSpringFrameworkJavaEE邏輯結構圖Struts/數據庫IOCAOP事輕量型架構Spring=銀彈?×輕量型架構Spring=銀彈?×目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)JavaEE開發(fā)運行環(huán)境配置系統(tǒng)環(huán)境規(guī)范系統(tǒng)環(huán)境包括了Java環(huán)境、環(huán)境變量定義、相關軟件的安裝和插件的配置。該部分目的在于保證一個全新系統(tǒng)執(zhí)行標準操作后,能夠達到開發(fā)的所需要的環(huán)境,而且所有團隊中所有成員的環(huán)境都一致,能夠降低因為不同環(huán)境造成的問題所浪費的精力。1.系統(tǒng)目錄建議所有Java開發(fā)所需要的軟件都在Java目錄下(e:\java),不需要安裝,只需要拷貝即可。Java目錄包括:JDK6Tomcat6Eclipse3.6Ant1.8Docs包括各種javadoc,如JDK,Hibernate,Commons等autoexec.batJavaEE開發(fā)運行環(huán)境配置系統(tǒng)環(huán)境規(guī)范JavaEE開發(fā)環(huán)境配置開發(fā)工具概述Eclipse,目前版本為3.6,使用方法略Dreamwaver8.0UltraEdit32

項目的版本控制Eclipse+NTCVSJavaEE開發(fā)環(huán)境配置開發(fā)工具概述安裝Tomcat6通常機器上裝了jdk6,建議安裝Tomcat6.0.x系列。Jdk6和Tomcat6以及Ant安裝的路徑都放在e:\java目錄下,安裝路徑如:e:\java\jdk1.6和e:\java\tomcat6.0一個操作系統(tǒng)下可以安裝多個Tomcat,安裝的方法可以通過運行安裝程序,也可以直接復制Tomcat6目錄文件。啟動Tomcat的方式:運行Tomcat6.0\bin\startup.bat或tomcat6.exe通過TomcatMonitor啟動tomcat服務運行系統(tǒng)服務中的Tomcat服務安裝Tomcat6通常機器上裝了jdk6,建議安裝TomTomcat6文件結構Bin:存放啟動和關閉Tomcat的命令Conf:存放Tomcat配置文件Lib:存放Tomcat服務器的核心類庫(jar文件),如果需要擴展Tomcat功能,也可將第三方類庫復制到該路徑下。Logs:保存Tomcat每次運行后產生的日志Temp:存放Web應用運行過程中生成的臨時文件Webapps:用于自動部署Web應用,將Web應用復制到該路徑下,Tomcat會將該應用自動部署在容器中;Work:保存web應用運行過程中,編譯生成的class文件,可刪除,每次啟動tomcat將再次建立。Tomcat6文件結構Bin:存放啟動和關閉Tomcat的Tomcat6服務端口配置打開conf下的server.xml修改<Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>如果要讓Tomcat運行多個服務,只需要復制Server.xml文件的<Service>元素,并修改相應的參數便可以實現(xiàn)一個Tomcat運行多個服務,要求不同的端口。Tomcat6服務端口配置打開conf下的server.xmTomcat6部署web應用四種方法:Tomcat自動部署利用控制臺部署增加自定義的Web部署文件修改server.xml部署Tomcat6部署web應用四種方法:項目目錄結構項目目錄結構項目目錄結構說明Src/java目錄主要用來存放項目的類代碼Src/test目錄主要用來存放一些單元測試代碼.jar文件項目所使用的一些第三方類庫docs目錄主要存放項目的相關說明文件(如需求說明,工作日志等)WebContent目錄主要存放web應用的頁面文件WebContent/web-inf和webapp/web-info/config配置文件project.xml文件基于ant的項目管理腳本項目目錄結構說明Src/java目錄課后實驗任務1:安裝jdk6.0和Tomcat6.0,并能運行Tomcat6.0,用不同的方法啟動和關閉Tomcat服務;任務2:安裝mysql,按test.txt中的數據庫腳本建立數據庫和表,注意建立數據庫時的字符集為gb2312;任務3:部署aa應用,修改aa的部署文件,在Tomcat中為aa配置一個局部數據源,通過jndi的方式訪問mysql數據庫。運行aa應用中的tomcatTest。任務4:安裝和熟悉使用Eclipse3.6創(chuàng)建一個Web應用,并使之運行。課后實驗任務1:安裝jdk6.0和Tomcat6.0,并能運基于J2EE架構的企業(yè)級組件開發(fā)技術劉煒上海大學計算機學院liuw@基于J2EE架構的企業(yè)級組件開發(fā)技術劉煒課程簡介在軟件工程理論、高級程序設計語言的基礎上,掌握基于JavaEE的企業(yè)級開發(fā)環(huán)境、架構和開發(fā)技術,掌握面向對象和面向組件的編程思想,熟悉各種面向對象的軟件設計模式。自主開發(fā)或改寫一個基于JAVAEE平臺的開源組件系統(tǒng)。課程簡介在軟件工程理論、高級程序設計語言的基礎上,掌握基于J課程目標(1)立足于企業(yè)級的JAVAEE架構技術,基于組件的軟件開發(fā)思想。(2)講授系統(tǒng)級的開發(fā)方法,從需求分析到設計及實現(xiàn)。(3)通過工程化訓練,構筑一個完整的軟件系統(tǒng),實踐javaee軟件開發(fā)全過程。課程目標(1)立足于企業(yè)級的JAVAEE架構技術,基于組課程內容結構Java6.0編程語言JavaEE架構技術JSP、Servlet和JavaBean相關技術Struts2,Hibernate,Spring等JavaEE框架面向對象的設計模式開源項目分析與開發(fā)(討論)課程內容結構Java6.0編程語言課程安排..第一講:組件開發(fā)與JavaEE技術概述(3學時)概括地講解什么是組件和組件開發(fā),講解JavaEE技術框架。使學生站在宏觀角度看待JavaEE和JavaEE組件開發(fā)技術。第二講:Java6.0編程基礎(3學時)1.JavaEE編程基礎2.Java6語言新特性:增強的for循環(huán)、注釋、枚舉、泛型、靜態(tài)導入等3.JavaEEAPIs要求:掌握Java編程基礎知識,面向對象的基本概念,Java類的編寫與測試,掌握Java5的一些新特性。重點:Java語言、面向對象語言的特性,Java類的編寫、編譯和測試難點:Java6的新特性:增強的for循環(huán)、注釋、枚舉、泛型、靜態(tài)導入等課程安排..第一講:組件開發(fā)與JavaEE技術概述(3學時..課程安排..第三講:JSP、Servlet和JavaBean相關技術(3學時)1.Jsp相關技術詳解Web應用和Web.xml文件JSP基本原理JSP的10個基本指令JSP的9個內置對象JSP2特性2.Servlet相關技術詳解Servlet的工作原理Servlet的開發(fā)Servlet的配置3.JavaBean的開發(fā)與使用4.Filter和Listener要求:掌握Jsp、Servlet和Javabean的相關技術。重點:Jsp的工作原理,編寫Jsp程序難點:Jsp2特性,Servelet的工作原理..課程安排..第三講:JSP、Servlet和JavaBe..課程安排..第四講:Struts2應用及替代技術(3個學時)1.MVC簡介2.Struts2體系結構3.Struts2基本應用及工作流程4.Struts2標簽庫應用5.Struts2攔截器6.Struts2國際化應用7.Struts2綜合應用實例8.其他替代技術要求:了解MVC開發(fā)模式,理解MVC三層模式的工作原理;了解Struts2的體系結構及工作原理;掌握Struts開發(fā)流程(包括程序的編寫和配置)。重點:Struts的工作原理和開發(fā)流程。難點:Struts的體系結構以及工作原理,標簽庫和攔截器的工作原理。..課程安排..第四講:Struts2應用及替代技術(3..課程安排..第五講:Hibernate3及替代技術(3個學時)1.ORM和流行的ORM框架介紹2.Hibernate概述3.對象/關系數據庫映射(ORM)、基本的映射方式4.Hibernate體系結構5.Hibernate深入使用6.HQL語言的使用7.Hibernate的事務控制要求:掌握ORM的工作原理,掌握基本的映射方式,掌握使用Hibernate編寫JAVAEE應用的數據庫訪問層,掌握Hibernate的配置、映射文件的編寫、關聯(lián)映射、繼承映射等,熟悉HQL語言的使用。重點:Hibernate的配置和使用、HQL語言的使用難點:Hibernate的關聯(lián)映射..課程安排..第五講:Hibernate3及替代技術(..課程安排..第六講:Spring及替代技術(3個學時)1.Spring的起源和背景2.Spring的下載和安裝3.Spring的核心機制:依賴注入4.Spring容器配置5.Spring的資源訪問6.Spring的AOP7.Spring的事務管理8.Spring和Struts整合9.Spring和Hibernate整合要求:掌握Spring的安裝和配置,掌握Spring的核心機制,掌握Spring容器的配置,了解SpringAOP、Spring的事務管理機制;掌握Spring和Struts及Hibernate的整合方法。重點:Spring的核心機制,Spring的容器配置,Spring和Struts、Hibernate的整合。難點:Spring的核心機制,Spring的AOP。..課程安排..第六講:Spring及替代技術(3個學..課程安排..第七講:

Spring、Struts、Hibernate整合開發(fā)(3個學時)1.學生項目管理系統(tǒng)應用背景2.JAVAEE編程結構3.系統(tǒng)功能介紹4.系統(tǒng)的設計概要設計數據庫設計5.實現(xiàn)DAO層6.實現(xiàn)Service層7.實現(xiàn)Web層要求:掌握JAVAEE編程環(huán)境的配置,掌握簡單的JAVAEE應用系統(tǒng)開發(fā)流程,掌握JAVAEE相關技術的應用。重點:基于MVC模式的JAVAEE開發(fā)流程。難點:如何將功能需求用JAVAEE技術轉化成應用程序。..課程安排..第七講:Spring、Struts、Hib..課程安排..第八講:JavaEE常用的設計模式(3個學時)1.面向對象設計模式簡介2.JAVAEE與設計模式3.單例模式4.工廠模式5.觀察者模式6.抽象類模式7.接口模式要求:掌握設計模式在JAVAEE應用開發(fā)中的使用方法,掌握幾種常見設計模式的原理和編寫方式。重點:常見面向對象設計模式的使用。難點:如何在系統(tǒng)設計中使用設計模式。..課程安排..第八講:JavaEE常用的設計模式(3..課程安排..第九講:項目研討(5-6個學時)學生匯報所分析和開發(fā)的項目;教師和學生進行點評和提問;第十講:android移動開發(fā)..課程安排..第九講:項目研討(5-6個學時)課程考核方式課程成績=項目分析與研討(50%)+課程論文或技術報告(50%)課程考核方式課程成績=項目分析與研討(50%)+課程論文或技參考項目元搜索引擎語義Web應用程序(本體編程)全文檢索系統(tǒng)WebUIAndroid移動互聯(lián)網應用機器學習(文本分類、聚類應用)網絡爬蟲SNS語義分析MVC框架參考項目元搜索引擎參考書 《輕量級JavaEE企業(yè)應用實戰(zhàn)》,李剛《瘋狂Java講義》,李剛《開發(fā)自己的搜索引擎---Lucene+Heritrix》,邱哲,符滔滔,王學松編著《Web3.0與SemanticWeb編程》,(美)赫布勒…等參考書 《輕量級JavaEE企業(yè)應用實戰(zhàn)》,李剛第一講:組件開發(fā)與JAVAEE概述劉煒上海大學計算機學院liuw@第一講:組件開發(fā)與JAVAEE概述劉煒目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)軟件領域的發(fā)展程序設計方法的發(fā)展軟件需求的變化軟件環(huán)境的變化軟件開發(fā)模式的變化軟件領域的發(fā)展程序設計方法的發(fā)展程序設計方法的發(fā)展功能分解法——計算任務結構化程序設計——以數據為中心面向對象程序設計——以對象為中心組件程序設計——以組件為中心綜合使用程序設計方法的發(fā)展功能分解法——計算任務綜軟件需求的變化計算實用管理(MIS)分布式系統(tǒng)軟件需求的變化計算實用管理(MIS)分布式系統(tǒng)軟件環(huán)境的變化單任務多任務文字界面圖形界面單線程多線程平臺相關跨平臺單機(本地)網絡(分布式)單一語言多種語言軟件環(huán)境的變化單任務多任務文字界面圖形界面單線程多線程平臺相軟件開發(fā)模式機器碼高級語言和腳本代碼OS+Compiler+EditorOS+Compilers+IDEs+Libraries+Wizards+Components+otherinforstructures+經驗軟件開發(fā)模式機器碼高級語言OS+Compiler+E對象技術用一種新的思路來看待問題10多年的發(fā)展證明了OO符合軟件的規(guī)律對象技術的發(fā)展需要開發(fā)工具和開發(fā)語言的支持三大特性:封裝性、繼承性、多態(tài)性四個要點:對象+類+繼承+消息通信對象技術用一種新的思路來看待問題面向對象技術弱點在中小規(guī)模的軟件中,對象和對象之間的協(xié)作關系就能夠滿足需要。但是當軟件規(guī)模擴大,復雜度上升的時候,面向對象技術強調的協(xié)作卻表現(xiàn)出另一個極端的特點-耦合度太高導致的復雜度。這時候就需要有一種新的方法來彌補面向對象技術的弱點。面向對象技術弱點在中小規(guī)模的軟件中,對象和對象之間的協(xié)作關系大規(guī)模軟件的特點大規(guī)模軟件主要特點是復雜度。比較典型的例子是集成性的項目。軟件系統(tǒng)需要將各種各樣的硬件、遺留系統(tǒng)、外部接口整合起來。其間可能遇到不同的硬件接口,不同的操作系統(tǒng),不同的語言,不同的平臺,不同的數據庫,不同的消息中間件,不同的網絡介質。這些都使得系統(tǒng)變得非常的復雜。面向對象技術的特點是通過對象之間的職責分工和高度協(xié)作來完成任務。這樣的好處是代碼量較少,系統(tǒng)布局合理,重用程度高。但是當對象的個數大量增加的時候,對象之間的高度耦合的關系將會使得系統(tǒng)變得復雜,難以理解。大規(guī)模軟件的特點大規(guī)模軟件主要特點是復雜度。比較典型的例子是大規(guī)模軟件的特點以前對于這個問題的方法是采用包作為容器來組織對象,對象之間的依賴性將轉化為包之間的依賴性。這種方法聽起來有道理,但是在實際中仍會出現(xiàn)難以解決的問題。包僅僅只是容器。這意味著對對象的組織可以是任意的,而包之間依賴關系的設計則還是取決于對象的依賴。此外,包的設計和對象一樣,缺乏一個統(tǒng)一的風格。而統(tǒng)一的風格正是大規(guī)模軟件設計所必須的,因為這樣可以有效改進系統(tǒng)的可理解性,這一點非常重要。大規(guī)模軟件的特點以前對于這個問題的方法是采用包作為容器來組織面向組件編程面向組件編程的縮寫是COP。COP是對OOP的補充,幫助實現(xiàn)更加優(yōu)秀的軟件結構。組件的粒度可大可小,需要取決于具體的應用。在COP中有幾個重要的概念:服務,服務(Service)是一組接口,供客戶端程序使用。例如,驗證和授權服務,任務調度服務。服務是系統(tǒng)中各個部件相互調用的接口;組件,組件(Component)實現(xiàn)了一組服務,此外,組件必須符合容器訂立的規(guī)范,例如,初始化,配置、銷毀。COP是對一種組織代碼的思路,尤其是服務和組件這兩個概念。在Spring框架中,就采用了COP的思路,將系統(tǒng)看作一個個的組件,通過定義組件之間的協(xié)作關系(通過服務)來完成系統(tǒng)的構建。這樣做的好處是能夠隔離變化,合理的劃分系統(tǒng)。而框架的意義就在于定義一個組織組件的方式。面向組件編程面向組件編程的縮寫是COP。COP是對OOP的補關于組件定義:軟件開發(fā)和重用的單位構成:接口和實現(xiàn)運行環(huán)境:容器驅動機制:框架可視化組件-包括外觀,事件和屬性控件非可視化組件-包括業(yè)務方法及其實現(xiàn)服務,業(yè)務邏輯形態(tài):DLL,JSP,Jar等關于組件定義:軟件開發(fā)和重用的單位組件的粒度組件的粒度是和系統(tǒng)的架構息息相關的。組件的粒度確定了,系統(tǒng)的架構也就確定了。在小規(guī)模的軟件中,可能組件的粒度很小,僅相當于普通的對象,但是對于大規(guī)模的系統(tǒng)來說,一個組件可能包括幾十,甚至上百個對象。因此,對使用COP技術的系統(tǒng)來說,需要正確的定義組件的粒度。較好的定義粒度的方法是對核心流程進行分析。組件的粒度組件的粒度是和系統(tǒng)的架構息息相關的。組件的粒度確定針對接口編程接口和實現(xiàn)分離是COP的基礎,沒有接口和實現(xiàn)的分離,就沒有COP。接口的高度抽象特性使得各個組件能夠被獨立的抽取出來,而不影響到系統(tǒng)的其它部分。針對接口編程接口和實現(xiàn)分離是COP的基礎,沒有接口和實現(xiàn)的分接口和實現(xiàn)分離的好處在模塊/組件/對象之間解耦。輕松的抽換實現(xiàn),而不用修改客戶端。用戶只需要了解接口,而不需要了解實現(xiàn)細節(jié)。增加了重用的可能性。接口和實現(xiàn)分離的好處在模塊/組件/對象之間解耦?;诮M件開發(fā)的好處實現(xiàn)了各類人員的分工合作促進了代碼重用降低應用開發(fā)的難度大大提高了軟件開發(fā)效率提升了軟件的質量便于分配任務和控制進度基于組件開發(fā)的好處實現(xiàn)了各類人員的分工合作目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)主流Web開發(fā)技術.NETJavaEE(J2EE)LAMP(Linux+Apache+Mysql+PHP)RubyonRails前三者曾經三足鼎立,R&R異軍突起主流Web開發(fā)技術.NET前三者曾經三足鼎立,R&R異軍突起LAMPLAMP:LAMP是一個縮寫,它指一組通常一起使用來運行動態(tài)網站或者服務器的開源軟件,包括:Linux操作系統(tǒng),Apache網絡服務器,MySQL數據庫,Perl、PHP或者Python編程語言。核心:PHP領域:大型商業(yè)網站,如開心網、校內網、Discuz等LAMPLAMP:LAMP是一個縮寫,它指一組通常一起使用來RubyonRailsRails是一個用于開發(fā)數據庫驅動的網絡應用程序的完整框架。Rails基于MVC(模型-視圖-控制器)設計模式。從視圖中的Ajax應用,到控制器中的訪問請求和反饋,到封裝數據庫的模型,Rails為你提供一個純Ruby的開發(fā)環(huán)境。發(fā)布網站時,你只需要一個數據庫和一個網絡服務器即可。各類機構,從初創(chuàng)公司、非贏利性組織到企業(yè)集團都在使用Rails。Rails是一個基礎框架,適用于開發(fā)各類網絡應用程序。至于這個程序究竟是團隊合作平臺,社區(qū),電子商務,內容管理或者統(tǒng)計系統(tǒng),則由你來決定。國內先驅:“RubyonRails是一個重大突破,大大降低了編程的門檻。以前需要數周或數月才能實現(xiàn)的強力網絡應用程序,現(xiàn)在只需要幾天而已?!?/p>

-TimO'Reilly,O'Reilly媒體創(chuàng)始人

RubyonRailsRails是一個用于開發(fā)數據庫驅JavaEE經過多年沉淀,JavaEE平臺已經成為電信、金融、電子商務、保險、證券等各行業(yè)的大型系統(tǒng)的首選開發(fā)平臺。目前Java行業(yè)的軟件開發(fā)已經基本穩(wěn)定,幾年內沒有出現(xiàn)具有廣泛影響的新技術。我們說的JavaEE,大致分為兩種方式:(1)以Spring為核心的輕量級JavaEE企業(yè)開發(fā)平臺。(2)以EJB3+JPA為核心的經典JavaEE開發(fā)平臺。JavaEE經過多年沉淀,JavaEE平臺已經成為電信、JavaEE案例(業(yè)界)…JavaEE案例(業(yè)界)目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)JAVA&J2EEJava和JavaEE是兩個不同概念,Java不只是指一種語言,已經代表與微軟不同的另外一個巨大陣營,所以Java有時是指一種軟件系統(tǒng)的流派,目前主要是.NET和Java兩大主流體系。目前JAVA2有三個平臺:適用于小型設備和智能卡的Java2平臺Micro版(Java2PlatformMicroEdition,J2ME)適用于桌面系統(tǒng)的Java2平臺標準版(Java2PlatformStandardEdition,J2SE)適用于創(chuàng)建服務器應用程序和服務的Java2平臺企業(yè)版(Java2PlatformEnterPriseEdition,J2EE)。JAVA&J2EEJava和JavaEE是兩個不同概念WhatisJavaEE

運用Java技術開發(fā)企業(yè)應用的標準包括了多層應用開發(fā)模型開發(fā)平臺-APIs和服務測試軟件包參考實現(xiàn)將所有Sun的企業(yè)技術集合在一個體系結構下的平臺特定版本下的EJB,Servlet,JSPJavaWebServerJNDI,JDBC,JTA,JMS,JavaMail,CORBA…WhatisJavaEE

運用Java技術開發(fā)企業(yè)應用WhatisJavaEE今天我們說的JavaEE應用,超出了Sun所提出的經典JavaEE應用規(guī)范,而是一種更廣泛的開發(fā)規(guī)范。經典JavaEE應用以EJB(企業(yè)級JavaBean)為核心,以應用服務器為運行環(huán)境,所以開發(fā)、運行成本高。我們的培訓介紹的輕量級JavaEE應用具備了JavaEE規(guī)范的種種特征,例如面向對象建模的思維、優(yōu)秀的應用分層及良好的擴展性、可維護性。輕量級JavaEE保留了經典JavaEE應用的架構,但開發(fā)更簡單,成本更低。WhatisJavaEE今天我們說的JavaEE應用JavaEE技術架構任何平臺Java虛擬機JavaEEFramework安全組件組件組件組件JCAebXMLJTAJMS…JavaEE技術架構任何平臺Java虛擬機JavaEEJavaEE應用的分層模型(1)不管是經典的JavaEE架構還是輕量級JavaEE架構,大致上可以分為以下幾層:DomainObject(領域對象)層:此層有系列的POJO(PlainOldJavaObject,普通傳統(tǒng)的Java對象)DAO(DataAccessObject,數據訪問對象)層:此層由系列的DAO組成,這些DAO實現(xiàn)了對數據庫的創(chuàng)建、查詢、更新和刪除(CRUD)等原子操作。JavaEE應用的分層模型(1)不管是經典的JavaEEJavaEE應用的分層模型(2)業(yè)務邏輯層:此層由系列的業(yè)務邏輯對象組成,這些業(yè)務邏輯對象實現(xiàn)了系統(tǒng)所需要的業(yè)務邏輯方法。這些業(yè)務邏輯方法可能僅僅用于暴露DomainObject對象所實現(xiàn)的業(yè)務邏輯方法,也可能是依賴DAO組件實現(xiàn)的業(yè)務邏輯方法??刂破鲗樱捍藢佑邢盗锌刂破鹘M成,這些控制器用于攔截用戶請求,并調用業(yè)務邏輯組件的業(yè)務邏輯方法,處理用戶請求,并根據處理結果轉發(fā)到不同的表現(xiàn)層組件。表現(xiàn)層:此層有系列的jsp頁面、Velocity頁面、PDF文檔視圖組件組成,負責收集用戶請求,并顯示處理結果。JavaEE應用的分層模型(2)業(yè)務邏輯層:此層由系列的業(yè)JavaEE應用分層結構數據庫DomainObject層DAO層業(yè)務邏輯層MVC控制器層表現(xiàn)層提供持久化服務封裝提供數據訪問服務提供業(yè)務邏輯實現(xiàn)顯示各層代碼通過松散耦合方式組合在一起,不以硬編碼方式組合。JavaEE應用分層結構數據庫DomainObject組件,框架和容器之間的關系UI組件邏輯組件數據組件事件調用調用客戶端請求容器事件處理框架業(yè)務處理數據訪問請求數據處理流程組件數據庫組件,框架和容器之間的關系UI組件邏輯組件數據組件事件調用調框架的作用為組件運行提供基礎服務為組件開發(fā)提供基礎類實現(xiàn)了組件之間的隔離支持組件間的協(xié)作管理組件生命周期運行于容器之內框架的作用為組件運行提供基礎服務JavaEE應用的組件(1)JavaEE大致包括如下幾個組件:表現(xiàn)層組件:主要負責收集用戶輸入數據和向用戶顯示系統(tǒng)狀態(tài)。最常用的表現(xiàn)層技術就是JSP,還可以有Velocity,FreeMarker和Taperstry等技術,也可以用應用程序充當表現(xiàn)層組件??刂破鹘M件:對于JavaEE的MVC框架而言,框架提供一個前端核心控制器,負責攔截用戶請求,并將請求轉發(fā)給控制器組件,控制器組件調用業(yè)務邏輯方法,處理用戶請求??刂破鹘M件有Struts,SpringMVC等。JavaEE應用的組件(1)JavaEE大致包括如下幾個JavaEE應用的組件(2)業(yè)務邏輯組件:系統(tǒng)的核心組件,實現(xiàn)系統(tǒng)的業(yè)務邏輯。通常,一個業(yè)務邏輯方法對應一次用戶操作。一個業(yè)務邏輯方法應該是一個整體,因此我們要求對業(yè)務邏輯方法增加事務性,業(yè)務邏輯方法僅僅負責實現(xiàn)業(yè)務邏輯,不應該進行數據庫訪問,因此,在業(yè)務邏輯層不應該出現(xiàn)Hibernate,JDBC等API。DAO組件:數據訪問對象組件。每個DAO組件都提供DomainObject對象基本的CRUD操作。采用不同的持久層訪問技術,DAO組件的實現(xiàn)會完全不同。為了業(yè)務邏輯組件的實現(xiàn)與DAO組件的實現(xiàn)分離,我們?yōu)槊總€DAO組件提供接口,業(yè)務邏輯組件面向DAO接口編程,從而達到最好的解耦。JavaEE應用的組件(2)業(yè)務邏輯組件:系統(tǒng)的核心組件,JavaEE應用的組件(3)領域對象組件:領域對象抽象了系統(tǒng)的對象模型。通常而言,這些領域對象的狀態(tài)都必須保存在數據庫里。因此,每個領域對象通常對應一個或多個數據表,領域對象通常需要提供對數據記錄的訪問方式。JavaEE應用的組件(3)領域對象組件:領域對象抽象了系應用的構成數據庫邏輯組件數據組件注冊頁面購物流程注冊流程充值流程登陸流程登陸頁面充值頁面購物頁面商品服務認證服務帳戶服務支付服務訂單服務帳戶DAO商品DAO訂單DAOUI組件流程組件領域對象組件帳戶POJO商品POJO訂單POJO應用的構成數據庫邏輯組件數據組件注冊頁面購物流程注冊流程充值JavaEE的優(yōu)勢用簡單的Jsp就能完成,為什么還要用Spring,Hibernate這些技術?軟件開發(fā)不僅僅考慮開發(fā)過程,還要考慮后期的維護、擴展;不僅僅考慮那些小型系統(tǒng),還要考慮大型系統(tǒng)的協(xié)同開發(fā)。對于大型系統(tǒng)而言,采用JavaEE架構有很大優(yōu)勢。軟件不是一次性系統(tǒng),在軟件的更新?lián)Q代中,不是徹底替換軟件,只能在其原來基礎上延伸。如果支撐企業(yè)系統(tǒng)的軟件不具備擴展性,將損失慘重。對于信息化系統(tǒng),前期開發(fā)工作對于整個系統(tǒng)工作量而言只是一小部分,后期的維護、升級往往占更大比重,極端情況下,企業(yè)需求發(fā)生重大變化,這些都要求軟件具有很好的伸縮性。JavaEE可以讓軟件系統(tǒng)中組件以松耦合的方式組織在一起,讓應用之間的耦合停留在接口層次,而不是代碼層次。JavaEE的優(yōu)勢用簡單的Jsp就能完成,為什么還要用SpJavaEE的優(yōu)勢保留現(xiàn)存的IT資產高效的開發(fā)支持異構環(huán)境堅持面向對象的設計原則靈活性、可移植性和互操作性輕松的企業(yè)信息系統(tǒng)集成引進面向服務的體系結構JavaEE為搭建具有可伸縮性、靈活性、易維護性的商業(yè)化系統(tǒng)提供了良好的機制:

JavaEE的優(yōu)勢保留現(xiàn)存的IT資產JavaEE為搭建具HOW?J2EE如此龐大!怎樣入手學習?HOW?J2EE如此龐大!怎樣入手學習?最佳途徑J2EEwithoutEJBSimplifytheBest:輕量框架Pragmatic的企業(yè)應用開發(fā)Kickstart最佳途徑J2EEwithoutEJB目錄組件與組件開發(fā)主流Web開發(fā)技術及比較什么是JavaEE?JavaEELightFramework開發(fā)技術JavaEE開發(fā)與部署環(huán)境配置總結目錄組件與組件開發(fā)概念理清JAVA技術流(以Java作為開發(fā)語言的技術)Java2平臺(以j2se為核心api)Java2EE架構規(guī)范JDBC,JNDI,JMS…EJB非EJBJ2EE容器JSP,Servelet...概念理清JAVA技術流(以Java作為開發(fā)語言的技術)Jav相關概念JavaEE=JavaEE容器+Web應用JavaEE容器包括EJB容器和Web容器Web容器是指Jsp/Servlet容器,你如果要開發(fā)一個Web應用,無論是編譯或運行,都必須要有Jsp/Servlet庫或API支持(除了JDK/J2SE以外)。相關概念JavaEE=JavaEE容器+Web應用JavaWeb服務器常見的Web服務器有三個:Tomcat:開源的javaweb服務器,和Java結合得最好,Sun官方推薦的Jsp服務器。性能和穩(wěn)定性都非常優(yōu)秀。Jetty:另一個優(yōu)秀的Web服務器,最大優(yōu)點是可以作為嵌入式服務器。加入在應用中加入Jetty的jar文件,應用可以在代碼中對外提供Web服務。Resin:目前最快的Jsp、Se

溫馨提示

  • 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

提交評論