package com.xcl.common;
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;
@aspect //用來指明這個類是切面
public class myinterceptor //宣告乙個切入點
//前置通知:攔截到某個類後,先執行前置通知
//如果加args(username),測只能攔截方法的引數為string型別的,且只有乙個引數的方法
@before("anymethod() && args(username)")
public void dobeforeadvice(string username)
//@afterreturning("anymethod()")//如果不需要返回值,可以這個設定
@afterreturning(pointcut="anymethod()", returning="result")
public void doafteradvice(string result)
@after("anymethod()")
public void dofinallyadvice()
//@afterthrowing("anymethod()")
@afterthrowing(pointcut="anymethod()", throwing="e")
public void doexceptionadvice(exception e)
//環繞通知可以替代上面的所有通知,完成乙個完整的許可權攔截的過程
@around("anymethod()")
public object doaroundprofiling(proceedingjoinpoint pjp) throws throwable catch (exception ex) finally
} return result;}}
Spring aop 切面程式設計
package cn.annals.demo.proc.aop import org.aspectj.lang.joinpoint import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation.after...
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 2 0 程式設計
在spring2.0中,aop發生了很大的變化 主要分為兩大方面 1.支援簡單的aop xml配置 2.支援 aspectj的注釋 先來看一看第一種情況 申明乙個aspect,在xml中的申明如下 申明pointcut 申明advice before advice pointcut ref data...