package cn.annals.demo.proc.aop;import org.aspectj.lang.joinpoint;
import org.aspectj.lang.proceedingjoinpoint;
import org.aspectj.lang.annotation.after;
import org.aspectj.lang.annotation.afterreturning;
import org.aspectj.lang.annotation.afterthrowing;
import org.aspectj.lang.annotation.around;
import org.aspectj.lang.annotation.aspect;
import org.aspectj.lang.annotation.before;
import org.aspectj.lang.annotation.pointcut;
import org.slf4j.logger;
import org.slf4j.logge***ctory;
import org.springframework.stereotype.component;
//宣告這是乙個元件
@component
//宣告這是乙個切面bean
@aspect
public
class
proc_service_aop
/** 配置前置通知,使用在方法aspect()上註冊的切入點
* 同時接受joinpoint切入點物件,可以沒有該引數
*/@before(
"aspect()")
public
void
before(joinpoint joinpoint)
}//配置後置通知,使用在方法aspect()上註冊的切入點
@after("
aspect()")
public
void
after(joinpoint joinpoint)
}//配置環繞通知,使用在方法aspect()上註冊的切入點
@around("
aspect()")
public
void
around(proceedingjoinpoint joinpoint)
} catch
(throwable e) }}
//配置後置返回通知,使用在方法aspect()上註冊的切入點
@afterreturning("
aspect()")
public
void
afterreturn(joinpoint joinpoint)
}//配置丟擲異常後通知,使用在方法aspect()上註冊的切入點
@afterthrowing(pointcut="
aspect()
", throwing="ex"
)
public
void
afterthrowing(joinpoint joinpoint, exception ex)
}}
Spring AOP切面程式設計
切面表示式 execution 修飾符 返回值型別 包.類.方法 引數列表 1 完全寫法 execution public void com.syy.xml aop.userimpl.work int 2 修飾符省略 execution void com.syy.xml aop.userimpl.w...
Spring AOP 面向切面程式設計
spring aop aop aspect orient programming 也就是面向切面程式設計 可以這樣理解,物件導向程式設計 oop 是從靜態角度考慮程式結構,面向切面程式設計 aop 是從動態角度考慮程式執行過程。在日常生活中,會遇到各種各樣的中介機構,比如獵頭公司,律師事務所,婚姻介...
Spring AOP面向切面程式設計
最近在系統中需要實現使用者某些操作新增積分,希望實現對系統現有的 進行最小嵌入,因此使用spring aop的切面程式設計將很好實現該需求,達到最小耦合度。在spring aop中的通知都是針對方法層級進行通知,相對與struct中針對類層級通知,具有更好的靈活性。方法攔截 methodinterc...