信息系統(tǒng)軟件設(shè)計(jì):第4章 Spring業(yè)務(wù)邏輯層技術(shù)_第1頁
信息系統(tǒng)軟件設(shè)計(jì):第4章 Spring業(yè)務(wù)邏輯層技術(shù)_第2頁
信息系統(tǒng)軟件設(shè)計(jì):第4章 Spring業(yè)務(wù)邏輯層技術(shù)_第3頁
信息系統(tǒng)軟件設(shè)計(jì):第4章 Spring業(yè)務(wù)邏輯層技術(shù)_第4頁
信息系統(tǒng)軟件設(shè)計(jì):第4章 Spring業(yè)務(wù)邏輯層技術(shù)_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第四章 Spring2.0業(yè)務(wù)邏輯層技術(shù)教學(xué)內(nèi)容 Spring 簡(jiǎn)介 有關(guān)知識(shí)補(bǔ)充 Spring 框架 Spring 配置文件34.1 Spring簡(jiǎn)介概述Spring是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。 目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性。功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能 。范圍:任何Java應(yīng)用 。簡(jiǎn)單來說,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。 44.1 Spring簡(jiǎn)介概述輕量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且S

2、pring所需的處理開銷也是微不足道的。非侵入 在應(yīng)用中,一般不需要引用springjar包里的類。控制反轉(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,某一接口的具體實(shí)現(xiàn)類的選擇控制權(quán)從調(diào)用類中移除,轉(zhuǎn)交給第三方裁決。 面向切面Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)()管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此而已。它們并不負(fù)責(zé)其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。 54.1 Spring簡(jiǎn)介容器Spring即是一個(gè)容器又是一個(gè)框架。容器Spring包含并管

3、理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建基于一個(gè)可配置原型(prototype),bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例以及它們是如何相互關(guān)聯(lián)的。 框架Spring提供了很多基礎(chǔ)的與業(yè)務(wù)邏輯無關(guān)的功能,比如:事務(wù)管理、持久化框架集成等等,使用Spring框架,開發(fā)人員可以專注于業(yè)務(wù)邏輯開發(fā),這個(gè)意義上講它是一個(gè)框架。 4.1 Spring簡(jiǎn)介容器借助于Spring,各種Java EE技術(shù)和服務(wù)的使用得到了大大簡(jiǎn)化,因?yàn)镻OJO (普通Java對(duì)象,與編程模式無關(guān))編程模型被Spring引入到Java EE的應(yīng)用開發(fā)中。為

4、了使POJO編程模型在Spring框架中可用,Spring引入了Spring DI容器和Spring AOP實(shí)現(xiàn)技術(shù),它們?cè)诔珜?dǎo)POJO編程模型方面的功勞是最大的 。4.1 Spring簡(jiǎn)介容器Spring 提供的控制反轉(zhuǎn)(DI)容器能夠管理POJO及各種Java組件。DI負(fù)責(zé)POJO的管理,比如為它提供事務(wù)服務(wù)、生命周期服務(wù)、線程服務(wù)、緩存服務(wù)和安全性服務(wù)等。與此同時(shí),AOP技術(shù)使得應(yīng)用程序能夠透明地享受到Java EE容器提供的企業(yè)級(jí)的服務(wù)(如JMX、JCA CCI和JMS) 。Spring DI容器針對(duì)各種DAO層集成技術(shù)(如Hibernate、JPA和JDBC)、Java EE服務(wù)及技

5、術(shù)提供了一流的集成支持。 4.1 Spring簡(jiǎn)介框架 Spring框架是連接Struts與Hibernate的橋梁,同時(shí)它很好地處理了業(yè)務(wù)邏輯。 Spring框架提供的控制反轉(zhuǎn)和面向方面編程、插件式架構(gòu)降低了應(yīng)用程序之間的依賴性。借助于XML定義文件,開發(fā)者能夠在程序運(yùn)行時(shí)連接不同的組件。Spring基本概念I(lǐng)oC Inverse of ControlDI Dependence InjectionAOP面向接口面向抽象核心容器核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory(ApplicationContext).BeanFactory 使用控制反轉(zhuǎn)

6、(IoC) 模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開4.1 Spring簡(jiǎn)介概念4.2.1 POJO類補(bǔ)充POJO,簡(jiǎn)單的Java對(duì)象(Plain Ordinary Java Objects)實(shí)際就是普通JavaBeans,使用POJO名稱是為了避免和EJB混淆起來, 而且簡(jiǎn)稱比較直接. 其中有一些屬性及其getter setter方法的類。Entity Bean(實(shí)體Bean)是持久數(shù)據(jù)組件,代表存儲(chǔ)在外部介質(zhì)中的持久(Persistence)對(duì)象或者已有的企業(yè)應(yīng)用系統(tǒng)資源。簡(jiǎn)單地講,一個(gè)Entity Bean可以代表數(shù)據(jù)庫(kù)中的一行記錄,多個(gè)客戶端應(yīng)用能夠以共享方式訪問表示該

7、數(shù)據(jù)庫(kù)記錄的Entity Bean。4.2.2 工廠模式知識(shí)補(bǔ)充在面向?qū)ο蟮木幊讨?,工廠模式是一種經(jīng)常被使用到的模式。工廠模式就是專門負(fù)責(zé)將大量有共同接口的類實(shí)例化,而且不必事先知道每次是要實(shí)例化哪一個(gè)類的模式。4.2.2 工廠模式知識(shí)補(bǔ)充X-PersonXy-ChineseXz-American工廠類-PersonFactory4.2.2 工廠模式知識(shí)補(bǔ)充返回的究竟是Xy還是Xz的實(shí)例并不重要,因?yàn)樗鼈冇邢嗤姆椒ǎ徊贿^這些方法的內(nèi)部實(shí)現(xiàn)不同罷了。 public static void main(String args) PersonFactory pf = new PersonFacto

8、ry(); Person p = null; p = pf.getPerson(Chinese); System.out.println(p.sayGoodBye(jack); System.out.println(p.sayHello(jack);4.2.2 工廠模式知識(shí)補(bǔ)充ApplicationContext context = new FileSystemXmlApplicationContext(src/org/test/applicationContext.xml); Person p = (Chese)context.getBean(chese); System.out.print

9、ln(p.sayGoodBye(rose); System.out.println(p.sayHello(rose); 4.3 Spring 框架組成Spring框架組成控制反轉(zhuǎn)IoC (依賴注入DI)面向方面(AOP) 4.3 Spring 框架組成Spring是一個(gè)分層框架,由若干定義好的模塊組成如下圖所示。 Spring2.0所有模塊定義在核心容器之上,核心容器定義了創(chuàng)建、配置和管理bean的方式。Spring2.5的模塊Spring2.5內(nèi)核(IoC容器)AOP技術(shù)實(shí)現(xiàn)Spring AOPAspectJ5 無縫集成DAOSpring JDBC集成事務(wù)管理ORMHibernate JPA

10、TopLinkiBATSJava EE 服務(wù)及技術(shù)JMXJMSEJB3.0組件技術(shù)郵件服務(wù)遠(yuǎn)程服務(wù)腳本技術(shù)集成線程池、任務(wù)調(diào)度支持WebSpring Web MVCWeb框架集StrutsWebworkTypestryJSF富視圖支持VelocityFreeMakerPDFJsper ReportsExcelSpring Portlet MVC 4.3 Spring 框架在IoC容器、 AOP技術(shù)實(shí)現(xiàn)的基礎(chǔ)上,存在各式各樣的DAO層集成技術(shù)、Java EE服務(wù)及技術(shù)、Web層支持。4.3.1 Spring 控制反轉(zhuǎn)(IoC)控制反轉(zhuǎn)IoC (Inversion of Control)是Spri

11、ng中最核心最重要的概念。借助于IoC ,實(shí)現(xiàn)“面向接口編程,而不是面向?qū)崿F(xiàn)編程”。4.3.1 Spring 控制反轉(zhuǎn)(IoC)IoC模式,即由容器控制程序之間的依賴關(guān)系,而不是由程序代碼直接控制,控制權(quán)的轉(zhuǎn)移就是反轉(zhuǎn)。依賴關(guān)系 意指類之間的訪問關(guān)系。 如果類A訪問類B的屬性或方法,或者類A實(shí)例化類B,則稱類A依賴于類B。4.3.1 Spring 控制反轉(zhuǎn)(IoC)IoC設(shè)計(jì)模式將創(chuàng)建對(duì)象實(shí)例的任務(wù)交給IoC容器,應(yīng)用代碼只需直接使用實(shí)例。實(shí)現(xiàn)了IoC模式的框架叫IoC容器。 IoC的另一個(gè)名字叫依賴注入(dependency Injection)- 組件之間的依賴關(guān)系由容器在運(yùn)行時(shí)決定,形象

12、地講,就是由容器動(dòng)態(tài)地將某種依賴關(guān)系注入到組件中。4.3.1 Spring 控制反轉(zhuǎn)(IoC)依賴注入(Dependency Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個(gè)概念。具體含義是:當(dāng)某個(gè)對(duì)象(可能是一個(gè)Java實(shí)例,調(diào)用者)需要另一個(gè)對(duì)象(另一個(gè)Java實(shí)例,被調(diào)用者)的協(xié)助時(shí),在傳統(tǒng)的程序設(shè)計(jì)過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實(shí)例。但在Spring里,創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來完成,因此稱為控制反轉(zhuǎn);創(chuàng)建被調(diào)用者實(shí)例的工作通常由Spring容器來完成,然后注入調(diào)用者,因此也稱為依賴注入。4.3.1 Spring 控制反轉(zhuǎn)(IoC)IOC特

13、點(diǎn)4.3.1 Spring 控制反轉(zhuǎn)(IoC)IoC的優(yōu)點(diǎn):不必關(guān)心組件的創(chuàng)建不必管理組件的生命周期 組件容易共享 測(cè)試非常容易4.3.1 Spring 控制反轉(zhuǎn)(IoC)Spring提供的兩個(gè)IoC容器(BeanFactory和ApplicationContext)(見工廠模式知識(shí)補(bǔ)充)BeanFactory主要適用于環(huán)境、內(nèi)容受限的場(chǎng)合,如在Applet環(huán)境中, BeanFactory是最基礎(chǔ)的IoC容器,它提供了配置框架和基礎(chǔ)功能。ApplicationContext繼承于BeanFactory,更適合于企業(yè)級(jí)的應(yīng)用開發(fā),重點(diǎn)討論。4.3.1 Spring 控制反轉(zhuǎn)(IoC)BeanFa

14、ctory 可將IoC容器比做食品加工廠。在提供源材料(POJO類)后,經(jīng)過加工工藝和設(shè)備(Spring IoC和Spring AOP)處理后,顧客得到滿意的食品(受管POJO,可能裝備了事務(wù)、安全等功能)。4.3.1 Spring 控制反轉(zhuǎn)(IoC)IoC原理默認(rèn)時(shí),配置的POJO都是單例的,即整個(gè)IoC容器僅有一個(gè)對(duì)應(yīng)的POJO實(shí)例,而不是每次調(diào)用時(shí)產(chǎn)生一個(gè)實(shí)例(原型的)。在初始化BeanFactory實(shí)例factory后,IoC容器并不預(yù)先實(shí)例化在配置文件中聲明的POJO實(shí)例。只是在應(yīng)用程序調(diào)用對(duì)應(yīng)的POJO時(shí),Spring 才會(huì)實(shí)例化用到的受管POJO。4.3.1 Spring 控制反

15、轉(zhuǎn)(IoC)IoC原理Spring支持三種主流的IoC注入類型設(shè)值( setter)注入、購(gòu)造器注入和方法注入。設(shè)值注入 指通過調(diào)用無參構(gòu)造器實(shí)例化受管POJO后,調(diào)用 setter方法設(shè)置對(duì)象間的依賴關(guān)系。構(gòu)造器注入 往構(gòu)造器傳入若干參數(shù)完成依賴注入,傳入的參數(shù)都是受管POJO依賴的對(duì)象。4.3.1 Spring 控制反轉(zhuǎn)(IoC)ApplicationContext IoC容器 建立在BeanFactory基礎(chǔ)之上,對(duì)企業(yè)級(jí)應(yīng)用開發(fā)提供了更多支持,增加了國(guó)際化消息(i18n)支持、事件傳送(發(fā)送和消費(fèi)事件)支持、訪問低層資源(.URL和java.io.File)、IoC容器分層(面向架構(gòu)分

16、層)等。4.3.1 Spring 控制反轉(zhuǎn)(IoC)ApplicationContext Spring IoC為ApplicationContext提供了許多實(shí)現(xiàn)類,ClassPathXmlApplicationContext和 FileSystemXmlApplicationContext使用最為頻繁。4.3.1 Spring 控制反轉(zhuǎn)(IoC)IoC在web應(yīng)用中的原理 在web應(yīng)用中,Spring會(huì)使用ApplicationContext的XmlApplicationContext來完成容器的創(chuàng)建工作。與BeanFactory不同的是:在構(gòu)建ApplicationContext( IoC

17、 容器)過程中, Spring會(huì)自動(dòng)實(shí)例化XML中定義的各個(gè)單例。4.3.1 Spring 控制反轉(zhuǎn)(IoC)加載IoC容器到Web應(yīng)用中IoC容器也是對(duì)象,需要實(shí)例化、提供方式使DI與應(yīng)用程序能交互、不使用時(shí)銷毀它。Spring提供contextLoaderListener和ContextLoaderservlet輔助類解決以上問題。對(duì)于支持Servletcontextlistener的web容器,開發(fā)者只需在web.xml中配置上下文參數(shù)即可。4.3.1 Spring 控制反轉(zhuǎn)(IoC)Spring 的web.xml配置 Spring的MVC框架是一個(gè)請(qǐng)求驅(qū)動(dòng)的Web框架,其設(shè)計(jì)圍繞一個(gè)中

18、心的Servlet進(jìn)行,它能將請(qǐng)求分發(fā)給控制器,并提供其他功能幫助Web應(yīng)用開發(fā)。 基于Struts+Spring+Hibernate的聯(lián)合應(yīng)用中,接收請(qǐng)求的Servlet是由Struts的ActionServlet來配置的,因此不使用DispatcherServlet來接收請(qǐng)求了。而是在web.xml中配置一個(gè)監(jiān)聽器,并通過加載Spring配置。如下所示: contextconfigLocation /WEB-INF/applicationContextcon.xml 注意:contextConfigLocation參數(shù)名稱是系統(tǒng)默認(rèn)解析的參數(shù),不能換成任意別的名稱,否則系統(tǒng)將加載默認(rèn)路徑/

19、WEB-INF/applicationContext.xml文件,如果找不到,就會(huì)報(bào)錯(cuò)。4.3.1 Spring 控制反轉(zhuǎn)(IoC) org.springframework.web.context.ContextLoaderListener 4.3.1 Spring 控制反轉(zhuǎn)(IoC)一個(gè)例子:一個(gè)人需要一把斧子.模型: 調(diào)用者: 人被調(diào)用者:斧子4.3.1 依賴注入例子三種方式實(shí)現(xiàn):一 原始社會(huì):調(diào)用者自己創(chuàng)建被調(diào)用者二 工業(yè)社會(huì):調(diào)用者向工廠要被調(diào)用者三 服務(wù)型社會(huì):被調(diào)用者主動(dòng)送上門4.3.1 依賴注入例子4.3.1 依賴注入例子兩種方法注入 構(gòu)造方法注入 設(shè)置屬性注入4.3.1 依賴注

20、入例子設(shè)值注入:指通過setter方法傳入被調(diào)用者的實(shí)例。public class Chinese implements Person private Axe axe; public Axe getAxe() return axe; public void setAxe(Axe axe) this.axe = axe; public void useAxe() axe.chop(); 設(shè)置注入 4.3.1 依賴注入例子4.3.1 依賴注入例子構(gòu)造注入:指通過構(gòu)造函數(shù)來完成依賴關(guān)系的設(shè)定,而不是通過setter方法。public class American implements Person

21、private Axe axe; public American(Axe axe) this.axe = axe; public void useAxe() axe.chop(); 構(gòu)造注入 4.3.1 依賴注入例子4.3.1 依賴注入例子兩種注入方式比較: 設(shè)值注入優(yōu)點(diǎn):設(shè)值注入與傳統(tǒng)的JavaBean的寫法更相似,所以更直觀,自然。對(duì)于復(fù)雜的依賴關(guān)系,采用構(gòu)造注入,會(huì)導(dǎo)致構(gòu)造器過于臃腫,難以閱讀在某些屬性可選的情況下,多參數(shù)的構(gòu)造器更加笨重4.3.1 依賴注入例子兩種注入方式比較: 構(gòu)造注入優(yōu)點(diǎn): 可以在構(gòu)造器中決定依賴關(guān)系的注入順序?qū)τ谝蕾囮P(guān)系無需變化的bean,構(gòu)造注入更有用處依賴關(guān)系

22、只能在構(gòu)造器中設(shè)定,組件內(nèi)部的依賴關(guān)系完全透明,更符合高內(nèi)聚的原則4.3.2面向方面編程(AOP)主要內(nèi)容AOP概述AOP的基本概念Spring中的AOP4.3.2.1 AOP概述OOP(Object-Oriented Programming,又稱面向?qū)ο缶幊蹋?。OOP更多的關(guān)注系統(tǒng)的垂直切面關(guān)注的問題,而對(duì)系統(tǒng)的橫切面比如:日志、安全性、事務(wù)管理等關(guān)注很少,或者說很難關(guān)注。AOP : 面向切面編程(Aspect-Oriented Programming),是OOP的延續(xù)。AOP 將分布在各個(gè)類中具有相同功能的代碼片段整合到一起,由單獨(dú)的功能模塊完成,不僅減少了代碼的重復(fù)量,降低了耦合,也提高

23、了代碼的可維護(hù)性。 不要認(rèn)為AOP會(huì)取代OOP,它只是OOP的補(bǔ)充。4.3.2.1 AOP概述AOP的作用就是在可以順序執(zhí)行的程序中,插入某些特殊的邏輯來實(shí)現(xiàn)一些特殊的功能 ,例如日志、事務(wù)、安全等都可以很方便的使用AOP來實(shí)現(xiàn)。采用AOP之前采用AOP之后4.3.2.1 AOP概述關(guān)注點(diǎn)分類 使用“橫切”技術(shù),AOP把軟件系統(tǒng)分為兩個(gè)部分: 核心關(guān)注點(diǎn)主要關(guān)注系統(tǒng)的業(yè)務(wù)邏輯;橫切關(guān)注點(diǎn)主要關(guān)注系統(tǒng)級(jí)的服務(wù),供業(yè)務(wù)邏輯使用。關(guān)注點(diǎn)核心關(guān)注點(diǎn)橫切關(guān)注點(diǎn)4.3.2.1 AOP概述現(xiàn)實(shí)狀態(tài)業(yè)務(wù)邏輯中,到處都涉及橫切關(guān)注點(diǎn)。因此對(duì)各個(gè)已經(jīng)實(shí)現(xiàn)的模塊(業(yè)務(wù)邏輯)而言,都有大量的橫切關(guān)注點(diǎn)實(shí)現(xiàn)。新的方案業(yè)

24、務(wù)邏輯用OO技術(shù)實(shí)現(xiàn);橫切關(guān)注點(diǎn)用AOP技術(shù)實(shí)現(xiàn)。橫切關(guān)注點(diǎn)是系統(tǒng)級(jí)服務(wù),對(duì)大部分應(yīng)用是常見的,容易抽象出來,并加以實(shí)現(xiàn)。4.3.2.1 AOP概述實(shí)現(xiàn)AOP的總體模式OO技術(shù)將應(yīng)用中的核心關(guān)注點(diǎn)分解成由層次(繼承)結(jié)構(gòu)組成的領(lǐng)域?qū)ο蠹稀OP將應(yīng)用中的橫切關(guān)注點(diǎn)分解成由切面(Aspect)組成的生態(tài)子系統(tǒng)。它們被分別實(shí)現(xiàn),互為補(bǔ)充,使得應(yīng)用的開發(fā)變得簡(jiǎn)單、可維護(hù)性得到增強(qiáng)。4.3.2.2 AOP的基本概念各種AOP實(shí)現(xiàn)切面的技術(shù)、框架、機(jī)制、手段可能不同,但是AOP技術(shù)的基本概念是相同的。包括以下個(gè)術(shù)語連接點(diǎn)(join point)、切入點(diǎn)(cutpoint)、 裝備(advice)、引入

25、(introduction)、 目標(biāo)對(duì)象(target object)、織入(weaving) 切面(Aspect)。4.3.2.2 AOP的基本概念連接點(diǎn)(Joinpoint)連接點(diǎn)是程序執(zhí)行中的一個(gè)精確執(zhí)行點(diǎn),如執(zhí)行到某個(gè)方法、訪問到某個(gè)成員變量、拋出某異常、裝載某個(gè)類。通常用連接點(diǎn)的強(qiáng)弱來衡量AOP實(shí)現(xiàn)的強(qiáng)弱。實(shí)現(xiàn)連接點(diǎn)的方法有很多,Spring AOP僅支持方法級(jí)連接點(diǎn)。也就是說,只有在方法執(zhí)行時(shí)才能加AOP。它是一個(gè)抽象的概念,在實(shí)現(xiàn)AOP時(shí),并不需要去定義一個(gè)join point。4.3.2.2 AOP的基本概念切入點(diǎn)(point cut)通過切入點(diǎn)能夠聲明、集結(jié)連接點(diǎn)。在AOP中

26、,可以定義一個(gè)point cut,來捕獲相關(guān)方法的調(diào)用。通常裝備與切入點(diǎn)關(guān)聯(lián)在一起,一旦某連接點(diǎn)被觸發(fā),則會(huì)立即執(zhí)行相應(yīng)的裝備。開發(fā)者借助于point cut表達(dá)語言來完成point cut的指定工作。4.3.2.2 AOP的基本概念裝備(Advice)裝備指切面(aspect)在特定連接點(diǎn)所采取的動(dòng)作。特定連接點(diǎn)由切入點(diǎn)(point cut)指定。主要的裝備類型包括:Before、 AfterReturning、AfterThrowing、 After 、Around。 Before裝備能夠在特定連接點(diǎn)被觸發(fā)前執(zhí)行,其它類似。4.3.2.2 AOP的基本概念引入(introducion)引入

27、也稱為inter-type聲明(AspectJ6)。將新的接口、方法、成員變量動(dòng)態(tài)引入到目標(biāo)類、接口或切面中。不改變一個(gè)現(xiàn)有類代碼的情況下,為該類添加屬性和方法簡(jiǎn)單講為對(duì)象引入附加的方法或?qū)傩裕瑥亩_(dá)到修改對(duì)象結(jié)構(gòu)的目的。有的AOP工具又將其稱為mixin。目標(biāo)對(duì)象(target Object)被若干切面(aspect)裝配過的對(duì)象,也被稱為被裝備的對(duì)象。4.3.2.2 AOP的基本概念織入(weaving)將切面與目標(biāo)對(duì)象組裝在一起的過程稱為織入。通過織入創(chuàng)建一個(gè)被裝備的對(duì)象??椚霑r(shí)機(jī)有編譯期、裝載期、運(yùn)行期。不同的AOP實(shí)現(xiàn)支持不同織入時(shí)機(jī)。Sring AOP 支持運(yùn)行期織入。把切面加入程序代碼的過程。4.3.2.2 AOP的基本概念切面(aspect)與OOP中對(duì)象的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論