日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring in action小结4.1

發(fā)布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring in action小结4.1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 橫切關(guān)注點:可以被描述為影響應(yīng)用多處的功能。橫切關(guān)注點可以被模塊化為特殊的類,這些類被稱為切面。

2 AOP自己的術(shù)語,通知(Advice)、切點(pointcut)、連接點(joinpoint)

切面的工作被稱為通知,通知定義了切面是什么以及如何使用,還解決了何時執(zhí)行這個工作的問題。

?

3 切面的通知類型

1)前置通知(Before)2)后置通知(After)3)返回通知(After-returning)4)異常通知(After-throwing)5)環(huán)繞通知(Around)

?

4 連接點(join point):是在應(yīng)用執(zhí)行過程中能夠插入切面的一個點。切面代碼可以利用這個點插入到應(yīng)用的正常流程中,并添加新的行為。

?

5 切點(Pointcut):切點有助于縮小切面通知的連接點范圍。如果說通知定義了切面的“什么”和“何時”的話,切點就定義了“何處”。切點的定義會匹配通知所要所要織入的一個或多個連接點。

?

6 切面(Aspect):切面是通知和切點的結(jié)合。通知和切點共同定義了切面的全部內(nèi)容--他是什么,在何時和何處完成其功能。

?

7 引入(Introduction):引入允許我們向現(xiàn)有的類添加新方法或?qū)傩浴?/p>

?

8 織入(Weaving):織入是把切面應(yīng)用到目標對象并創(chuàng)建新的代理對象的過程。切面在指定的連接點被織入到目標對象中。

可以進行織入的點

1)編譯器:切面在目標類編譯時被織入,這種方式需要特殊的編譯器。

2)類加載期:切面在目標類加載到 JVM 時被織入。需要特殊的類加載器,他可以在目標類被引入應(yīng)用之前增強該目標類的字節(jié)碼。

3)運行期:切面在應(yīng)用運行的某個時刻被織入。一般情況下,在織入切面時,AOP容器會為目標對象動態(tài)的創(chuàng)建一個代理對象。Spring AOP就是以這種方式織入切面的。

?

9 Spring是基于動態(tài)代理的,所以spring只支持方法連接點,并且不支持構(gòu)造器連接點,我們無法在bean創(chuàng)建時通知應(yīng)用。

?

10 spring支持的切點表達式

?

指示器描述
arg()限制連接點匹配參數(shù)為指定類型的執(zhí)行方法
@args()限制連接點匹配參數(shù)由指定注解標注的執(zhí)行方法
execution()用于匹配時連接點的執(zhí)行方法
this()限制連接點匹配AOP代理的bean引用為指定類型的類
target()限制連接點匹配目標對象為指定類型的類
@target()限制連接點匹配特定的執(zhí)行對象,這些對象對應(yīng)的類要具有指定類型的注解
within()限制連接點匹配指定類型
@annotation限制匹配帶由指定注解的連接點

?

11 切入點表達式,spring具體到方法,因此指示器要指定到方法。在指示器中可以使用邏輯關(guān)系進一步限制切點位置。可以使用and/or/not。

?

12 spring的通知

注解通知
@After通知方法會在目標方法返回或拋出異常后調(diào)用
@AfterReturning通知方法會在目標方法返回后調(diào)用
@AfterThrowing通知方法會在目標方法拋出異常后調(diào)用
@Around通知方法會將目標方法封裝起來
@Bedore通知方法會在目標方法調(diào)用之前執(zhí)行

?

13 定義切面

@Aspect public class MyInspect {/****/@Pointcut("execution(* com.dwzx.zjg.investfinance.buy.test.*.*(..))")public void performance() {}/*** */@Before("performance()")public void fun1() {System.out.println("fun1");}} @Pointcut定義了一個切點表達式,在其他方法中可以直接引用。

?

14 開啟切面注解解析

在JavaConfig中使用如下方式,在配置類的類級別上使用@EnableAspectJAutoProxy 啟用自動代理功能。

@Configuration @EnableAspectJAutoProxy @ComponentScan public class ConcertConfig {/*** 聲明MyInspect Bean* @return*/@Beanpublic MyInspect myInspect() {return new MyInspect();} }

?

總結(jié)

以上是生活随笔為你收集整理的spring in action小结4.1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。