對切面和切入點的理解
<aop:config> ????<aop:aspect?id="myAspect"?ref="aBean"> ????<aop:pointcut?expression="execution(*?com.imooc.aop.schema.advice.biz.*Biz.*(..))"?id="moocPointcut"?/> ????<aop:before?method="before"?pointcut-ref="moocPointcut"?/>?//前置通知 ????<aop:after-returning?method="afterReturning"?pointcut-ref="moocPointcut"?/>?//返回后通知 ????<aop:after-throwing?method="afterThrowing"?pointcut-ref="moocPointcut"?/>?//拋出異常后通知 ????<aop:after?method="after"?pointcut-ref="moocPointcut"?/>?//后通知 ????</aop:aspect> </aop:config>
aspect引用的類aBean相當于一個切面,里面提供處理切入點的方法,pointcut里的expression相當于一個生產線,里面的各個方法就相當于生產線的切入點。之后的after,after-throwing,before相當于不同切入點的工人,通過ponitcut-ref到指定切入點工作,只不過工作時間順序不同,分別在切入點后,出問題后,切入點前,method表示程序順著生產線到切入點時各個工人用切入面的方法處理。
2019-05-20
寫的挺好的,理解感覺也挺生動。
定義了一個方面,每個方面會有若干點,每個點都可以設置在什么時候觸發這個點開始工作,分別可以設置在這個點發生的事件之前、之后、返回前、拋出異常之前。同時也設置了各個方法,一點觸發就到對應的方法中執行相應的操作。
總體感覺大概就是這個意思。