第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring AOP攔截方法未生效

Spring AOP攔截方法未生效

繁星點點滴滴 2019-05-09 09:23:09
問題描述寫了個切面,對方法上含有指定注解的方法進行攔截。運行時發(fā)現(xiàn),如果一個子類A繼承了抽象父類B,并實現(xiàn)了父類的抽象方法,在子類的重寫方法上加上指定注解,卻發(fā)現(xiàn)這個方法在調(diào)用時不能被攔截。哪位能給解釋下,以及解決辦法?相關(guān)代碼//注解public@interfaceProfiling{}//父類publicclassB{publicabstractvoidfoo();}//子類publicclassAextentB{//加上了Profiling注解,想要此方法被攔截,但實際未被攔截@Profiling@Overridepublicvoidfoo(){//dosomething}}//定義的切面publicclassAspect{@Pointcut("@annotation(com.base.Profiling)")privatevoidpointCut(){}@Around("pointCut()")publicObjectaround(ProceedingJoinPointpjp){//dosomething}}
查看完整描述

2 回答

?
皈依舞

TA貢獻1851條經(jīng)驗 獲得超3個贊

不清楚題主的配置文件是什么。題主可以這么去檢查:1、Aspect類需要被Spring管理,并且要被標記為@org.aspectj.lang.annotation.Aspect。2、A類需要被Spring管理。3、@Around注解的處理邏輯應該是:
@Around("pointCut()")
publicvoidaround(ProceedingJoinPointpjp)throwsThrowable{
System.out.println("dosomethingbeforetherealinvocation....");
pjp.proceed();//真正的調(diào)用業(yè)務方法,就是foo();
System.out.println("dosomethingaftertherealinvocation....");
}
                            
查看完整回答
反對 回復 2019-05-09
?
長風秋雁

TA貢獻1757條經(jīng)驗 獲得超7個贊

父類重寫的方法是攔截不到的,具體的你可以調(diào)試下以下這段代碼。我本地沒有模擬你的這種情況,但是應該也是一樣的。ReflectiveMethodInvocation.proceed(),你應該是利用AspectJ的方式來做aop攔截的,所以具體調(diào)試下AspectJExpressionPointcut.matches()方法。
                            
查看完整回答
反對 回復 2019-05-09
  • 2 回答
  • 0 關(guān)注
  • 1906 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號