spring aop :面向切面程式設計
**最小範圍是方法,可以針對指定類,或指定名稱的方法進行**,支援萬用字元 add*()。
aop的概念:
1: 切入點:(在燒餅的什麼地方切開):在哪些類,哪些方法上切入其他**(功能增強)
2:增強(通知):(需要放到燒餅中的肉) 在執行原有方法的什麼時候(方法前,方法後)要去做什麼(插入需要增加的**)
3:切面: 切入點+增強 在哪些類,哪些方法執行的過程中插入需要增加的**。
4:織入:(將肉放到燒餅中的過程),把切面加入到物件中,並且建立出**物件的過程(該過程由spring自動完成)
spring aop的兩種實現方法:
<?xml version="1.0" encoding="utf-8"?>
1.2:切面表示式
切面表示式遵循以下格式
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern)throws-pattern?)
1.3 切面aoputil類
package com.zhiyou.util;
import org.aspectj.lang.proceedingjoinpoint;
public class aoputil
public void after()
public void after2()
public void throwingafter()
}
2.1:xml配置
<?xml version="1.0" encoding="utf-8"?>
2.2:切面aoputil2類
package com.zhiyou.util;
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 aoputil2
@around("asjkdhka()")
public object around(proceedingjoinpoint pjp)catch (throwable e) finally
return obj; }
}
Spring AOP 面向切面程式設計
spring aop aop aspect orient programming 也就是面向切面程式設計 可以這樣理解,物件導向程式設計 oop 是從靜態角度考慮程式結構,面向切面程式設計 aop 是從動態角度考慮程式執行過程。在日常生活中,會遇到各種各樣的中介機構,比如獵頭公司,律師事務所,婚姻介...
Spring AOP面向切面程式設計
最近在系統中需要實現使用者某些操作新增積分,希望實現對系統現有的 進行最小嵌入,因此使用spring aop的切面程式設計將很好實現該需求,達到最小耦合度。在spring aop中的通知都是針對方法層級進行通知,相對與struct中針對類層級通知,具有更好的靈活性。方法攔截 methodinterc...
Spring AOP面向切面程式設計
一.常用概念 原有功能 切點 pointcut 前置通知 在切點之前執行的功能,before advice 後置通知 在切點之後執行的功能,after advice 異常通知 如果切點執行過程 現異常,則觸發異常通知 throws advice 切面 所有功能的總稱 織入 把切面嵌入到原有功能的過程...