【JAVA面試】-Spring中常用的切面注解有哪些?

AOP(Aspect-Oriented Programming,面向切面編程)是一種編程思想和技術(shù),用于解決代碼橫切關(guān)注點(Cross-Cutting Concerns)的問題,如日志記錄、安全授權(quán)、事務(wù)管理等。在Java中,AOP通常使用注解來聲明切面和切點。
@EnableAspectJAutoProxy: 開啟注解切面
@Aspect:標(biāo)識一個類為切面類。
@Pointcut:定義一個切點,用于描述哪些方法需要被切入。
@Before:前置增強(qiáng),表示在目標(biāo)方法執(zhí)行之前執(zhí)行切面邏輯。
@After: 后置增強(qiáng),不管是拋出異?;蛘哒M顺龆紩?zhí)行
@AfterReturning:后置增強(qiáng),表示在目標(biāo)方法返回之后執(zhí)行切面邏輯,異常不執(zhí)行。
@AfterThrowing:后置增強(qiáng),表示在目標(biāo)方法拋出異常之后執(zhí)行切面邏輯。
@Around:環(huán)繞增強(qiáng),表示在目標(biāo)方法執(zhí)行前后執(zhí)行切面邏輯。 調(diào)用被代理對象方法需要自行控
@DeclareParents:用于向目標(biāo)類添加額外的接口實現(xiàn)。
DeclareParents使用場景:當(dāng)我們已經(jīng)完成了一個項目的某個階段開發(fā),此時需要對已完成的某個類加入一些新的方法,我們首先想到的是寫一個接口,然后讓這些需要方法的類實現(xiàn)此接口,但是如果目標(biāo)類非常復(fù)雜,牽一發(fā)而動全身,改動的話可能非常麻煩。此時就可以使用此注解,然后建一個代理類,同時代理該類和目標(biāo)類