Spring AOP 面向切面程式設計筆記

2021-09-29 19:38:59 字數 1728 閱讀 9104

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 切面 所有功能的總稱 織入 把切面嵌入到原有功能的過程...