Spring aop 切面程式設計

2021-09-07 09:11:48 字數 1617 閱讀 5720

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...