重學Spring中的AOP

2021-10-10 09:34:38 字數 2776 閱讀 2078

核心思想:在不改變原有的**情況下,實現對原有功能的增強

1、spring 中基於 aop 的 xml架構為了使用 aop 命名空間標籤,需要匯入 spring-aop 架構

<?xml version="1.0" encoding="utf-8"?>

xmlns

=""xmlns:xsi

=""xmlns:aop

=""xsi:schemalocation

="/spring-beans-3.0.xsd

/spring-aop-3.0.xsd "

>

beans

>

2、宣告乙個 aspect
<

aop:config

>

<

aop:aspectid=

"myaspect"

ref="abean"

>

<

aop:pointcutid=

"businessservice"

expression

=/>

<

aop:before

pointcut-ref

="businessservice"

method

="dorequiredtask"

/>

<

aop:after

pointcut-ref

="businessservice"

method

="dorequiredtask"

/>

<

aop:after-returning

pointcut-ref

="businessservice"

returning

="retval"

method

="dorequiredtask"

/>

<

aop:after-throwing

pointcut-ref

="businessservice"

throwing

="ex"

method

="dorequiredtask"

/>

<

aop:around

pointcut-ref

="businessservice"

method

="dorequiredtask"

/>

...aop:aspect

>

aop:config

>

"abean"

class

="..."

>

...bean

>

3、例項**
public

class

logging

public

void

afteradvice()

public

void

afterreturningadvice

(object retval)

}

4、註解實現
@aspect

public

class

logging

@after

(value=

"execution(* com.zc.pojo.student.*(..))"

)public

void

afteradvice()

@afterreturning

(value=

"execution(* com.zc.pojo.student.*(..))"

,returning =

"retval"

)public

void

afterreturningadvice

(object retval)

}

@afterreturning(value="execution( com.zc.pojo.student.*(…))",returning = 「retval」)有返回值如果不寫上returning = 「retval」,會報錯:error at ::0 formal unbound in pointcut*

<?xml version="1.0" encoding="utf-8"?>

xmlns

=""xmlns:xsi

=""xmlns:aop

=""xsi:schemalocation

="/spring-beans-3.0.xsd

/spring-aop-3.0.xsd "

>

"student"

class

="com.zc.pojo.student"

>

name

="namestring"

value

="小肚子"

/>

name

="age"

value

="15"

/>

bean

>

"logging"

class

="com.zc.pojo.logging"

/>

<

aop:aspectj-autoproxy

/>

beans

>

spring框架中的AOP

在spring框架中學習與測試aop。第一步 需要匯入對應的所需要的jar包 第二步 在beans.xml檔案中進行配置 命名標籤的配置 注意 要在配置中加入我注釋的那三行。第一次把第一行漏掉了,導致我在接下來的步驟中報錯,直接無法找到對應的命名標籤。第三步 即可對aop進行例項操作了。由於才開始學...

Spring中AOP的使用

1.引入jar包 2.在測試類中新增註解 新增測試的註解的位置 runwith springjunit4classrunner.class public class aoptest 1在工程中引入spring基本jar包 2.引入aop開發的相關jar包 4.在核心配置檔案中加入約束 5.建立切面類...

Spring中的AOP實現

aop是乙個面像切點,比如,如果寫好乙個專案後,想要繼續給其新增功能,按照以前的寫法就需要更該以前所寫好的 而aop就是把這一項缺陷所彌補 並aop面像切點只可在spring中使用 beans 3,建立好幾個測試用的類,乙個所需要插入的類,乙個提供插入的類 還有測試類,並實現裡面的方法 4,在aop...