freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

web開發(fā)框架第一講spring框架-資料下載頁(yè)

2025-08-05 01:28本頁(yè)面
  

【正文】 點(diǎn)就稱為 “ 連接點(diǎn) ” , Spring僅支持方法的連接點(diǎn)。 ? 切點(diǎn) (Pointcut): ? 匹配連接點(diǎn)( Joinpoint)的斷言。連接點(diǎn)相當(dāng)于數(shù)據(jù)記錄,切點(diǎn)相當(dāng)于查詢條件,一個(gè)切點(diǎn)可以匹配多個(gè)連接點(diǎn)。 ? 增強(qiáng) (Advice): ? 織入到目標(biāo)類連接點(diǎn)上的一段程序代碼。 ? 目標(biāo)對(duì)象 (Target): ? 增強(qiáng)邏輯的織入目標(biāo)類 ? 引介 (Introduction) ? 引介是一種特殊的增強(qiáng),為類添加一些屬性和方法。通過(guò)它可以動(dòng)態(tài)的為業(yè)務(wù)類增加接口的實(shí)現(xiàn)邏輯,讓業(yè)務(wù)類成為這個(gè)接口的實(shí)現(xiàn)類。 33 ? 織入 (Weaving): ? 將增強(qiáng)添加到對(duì)目標(biāo)類具體連接點(diǎn)上的過(guò)程。 ? 代理 (Proxy) ? 一個(gè)類被 AOP織入增強(qiáng)后,就產(chǎn)生了一個(gè)結(jié)果類,它是融合了原類和增強(qiáng)邏輯的代理類。根據(jù)不同的代理方式,代理類既可能是和原類具有相同接口的類,也可能是原類的子類,所以我們可以采用調(diào)用原類相同的方式調(diào)用代理類 ? 切面 (Aspect) ? 切面由切點(diǎn)和增強(qiáng) (引介 )組成,它既包括了橫切邏輯的定義,也包括了連接點(diǎn)的定義, spring AOP就是負(fù)責(zé)實(shí)施 切面的框架,它將切面定義的橫切邏輯織入到切面所指定的連接點(diǎn)中。 ? AOP的工作重點(diǎn)在于如何將增強(qiáng)應(yīng)用于目標(biāo)對(duì)象的連接點(diǎn)上,這包括兩個(gè)工作: ? 1,如何通過(guò)切點(diǎn)和增強(qiáng)定位到連接點(diǎn)上; ? 2,如何在增強(qiáng)中編寫切面的代碼; 面向切面編程 (AOP) 34 ? 代理機(jī)制: ? AOP通過(guò) 動(dòng)態(tài)代理技術(shù) 在運(yùn)行期織入增強(qiáng)代碼,首先了解下 AOP使用的兩種代理機(jī)制: ? 1,基于 JDK的動(dòng)態(tài)代理 ? , java提供了動(dòng)態(tài)代理技術(shù) ,允許開發(fā)者在運(yùn)行期創(chuàng)建接口的代理實(shí)例。 ? JDK動(dòng)態(tài)代理主要涉及兩個(gè)類, ? ? . InvocationHandler ? InvocationHandler是一個(gè)接口,可以通過(guò)實(shí)現(xiàn)該接口定義的橫切邏輯,并通過(guò)反射機(jī)制調(diào)用目標(biāo)類的代碼,動(dòng)態(tài)的將橫切邏輯和業(yè)務(wù)邏輯編織在一起。 ? Proxy利用 InvocationHandler動(dòng)態(tài)創(chuàng)建一個(gè)符合某一接口的實(shí)例,生成目標(biāo)類的代理對(duì)象。 ? 例子如下: 面向切面編程 (AOP) 35 ? 2,基于 CGlib的動(dòng)態(tài)代理 ? JDK只能為接口創(chuàng)建代理實(shí)例,對(duì)于那些沒(méi)有通過(guò)借口定義業(yè)務(wù)方法的類,可以通過(guò)CGLib創(chuàng)建代理實(shí)例。 ? CGLib采用底層字節(jié)碼技術(shù),可以為一個(gè)類創(chuàng)建子類,并在子類中采用方法攔截技術(shù)攔截所有父類方法的調(diào)用,這時(shí)可以順勢(shì)織入橫切邏輯。 ? 例子如下: 面向切面編程 (AOP) 36 ? 小結(jié): AOP就是通過(guò) JDK動(dòng)態(tài)代理或 CGLib動(dòng)態(tài)代理技術(shù)為目標(biāo) bean織入橫切邏輯 .雖然 JdkProxyClass和 CglibProxy實(shí)現(xiàn)了性能監(jiān)視橫切邏輯的動(dòng)態(tài)織入,但是這種方式存在三個(gè)需要改進(jìn)的地方。 ? 1,目標(biāo)類的所有方法都添加了性能監(jiān)視橫切邏輯。 ? 2,通過(guò)硬編碼方式制定了織入橫切面的織入點(diǎn),即在目標(biāo)類業(yè)務(wù)方法的開始和結(jié)束前織入代碼。 ? 3,手工編寫代理實(shí)例的創(chuàng)建過(guò)程,為不同類創(chuàng)建代理時(shí),需要分別編寫相應(yīng)的代碼,沒(méi)有做到通用。 ? Spring AOP主要工作就是圍繞以上三點(diǎn)展開: 通過(guò)切點(diǎn)指定在哪些類的哪些方法上施加橫切邏輯,通過(guò)增強(qiáng)描述橫切邏輯和方法的具體織入點(diǎn),此外 Spring通過(guò)切面將切點(diǎn)和增強(qiáng)或引介組裝起來(lái),有了切面信息, Spring就可以通過(guò) JDK或 CGLib的動(dòng)態(tài)代理技術(shù)采用統(tǒng)一的方式為目標(biāo) bean創(chuàng)建織入切面的代理對(duì)象了。 面向切面編程 (AOP) 37 ? 創(chuàng)建增強(qiáng)類 ? 前置增強(qiáng) ? 后置增強(qiáng) ? 環(huán)繞增強(qiáng) ? 異常拋出增強(qiáng) ? 引介增強(qiáng) 面向切面編程 (AOP) 38 ? 前置增強(qiáng) ? BeforeAdvice是前置增強(qiáng)的接口。 ? 方法前置增強(qiáng) MethodBeforeAdvice接口是其子類。 ? Spring 目前只提供方法調(diào)用的前置增強(qiáng)。 ? 例子: 面向切面編程 (AOP) 39 ? 后置增強(qiáng) 面向切面編程 (AOP) 40 ? 環(huán)繞增強(qiáng) 面向切面編程 (AOP) 41 ? AOP應(yīng)用:數(shù)據(jù)庫(kù)事務(wù)管理 ? 事務(wù)概念:事務(wù)是包含一個(gè)或多個(gè) SQL語(yǔ)句的邏輯工作單元。事務(wù)中的 SQL語(yǔ)句能夠全部提交也能夠全部回滾。 ? Spring 對(duì)事務(wù)的控制是在配置文件統(tǒng)一控制的。 ? aop:config ? ! 這定義了主要的切面,也就是那些接口可以使用事務(wù) ,這里只是說(shuō)執(zhí)行 ProductService的所有方法 ? aop:pointcut id=productServiceMethods ? expression=execution(* .*.*(..)) / ? aop:advisor adviceref=txAdvice ? pointcutref=productServiceMethods / ? /aop:config ? !主要的事務(wù) advice 聲明事務(wù)的相關(guān)屬性 ? tx:advice id=txAdvice transactionmanager=transactionManager ? tx:attributes ? tx:method name=delete* propagation=REQUIRED / ? tx:method name=add* propagation=REQUIRED / ? tx:method name=modify* propagation=REQUIRED / ? tx:method name=find* propagation=REQUIRED / ? tx:method name=* propagation=SUPPORTS readonly=true / ? /tx:attributes ? /tx:advice 面向切面編程 (AOP) 42 43 44 45 46 47 48 課程完畢 ? 謝謝大家的配合!
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1