Spring之使用Aop的三種方式

2021-09-25 11:44:57 字數 1958 閱讀 5988

定義將會進行切面增強的類

/**

* @author 周寧

* @date 2019-07-20 13:48

*/public class aspectbean

}

1.使用@aspect的方式

定義切面類,定義切入點,增強邏輯

/**

* @author 周寧

* @date 2019-07-20 13:50

*/@aspect

public class aspectjtest

@before("p1()")

public void before()

@after("p1()")

public void after()

@around("p1()")

public object arroundtest(proceedingjoinpoint p) throws throwable

}

新增aspectjtest.xml,並加入如下配置

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

編寫測試方法

@test

public void testaspectj()

2.使用aop:aspect實現aop

編寫增強advice

/**

* @author 周寧

* @date 2019-07-22 20:54

*/public class explictaspect

public void afteradvice()

public object aroundadvice(proceedingjoinpoint p) throws throwable

}

在aopxmlconftest.xml中配置切入點和增強

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

編寫測試類

@test

public void testxmlaop()

3.使用aop:advisor實現aop

編寫advisor實現實現methodbeforeadvice,afterreturnningadvice,methodinterceptor介面

/**

* @author 周寧

* @date 2019-07-23 14:11

*/public class explictadvisor implements methodbeforeadvice, afterreturningadvice, methodinterceptor

@override

public void before(method method, object args, object target) throws throwable

@override

public void afterreturning(object returnvalue, method method, object args, object target) throws throwable

}

在aopxmlconftest2.xml配置切入點和增強

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

編寫測試類

@test

public void testxmlaop2()

spring學習之AOP 三

四個bean定義的次序並不重要。我們現在有了乙個advice,乙個包含了正規表示式pointcut的advisor,乙個主程式類和乙個配置好的介面,通過工廠ctx,這個介面返回自己本身實現的乙個引用。beanimpl和testbeforeadvice都是直接配置。我們用乙個唯一的id建立乙個bean...

Spring之AOP方式三

本篇學習aop實現方式三 註解 1 配置檔案 注意 使aop註解生效 2 建立aop註解類 aspect 切面類 public class annotationaop 後置方法 切入點 after execution com.lizheng.service.userserviceimpl.publi...

spring註解之 Import註解的三種使用方式

1 import只能用在類上,import通過快速匯入的方式實現把例項加入spring的ioc容器中 2 加入ioc容器的方式有很多種,import註解就相對很牛皮了,import註解可以用於匯入第三方包,當然 bean註解也可以,但是 import註解快速匯入的方式更加便捷 3 import註解有...