AOP中AspectJ方式異常通知
阿新 • • 發佈:2018-12-13
1 只有在切點報異常才能出發異常通知 2 在spring中AspectJ與scheme-base方式都提供了異常通知方法 3 實現步驟 3.1 新建類
public class MyThrowAdvice {
public void throwMethod(Exception e1) {
System.out.println("thorw" + e1.getMessage());
}
}
3.2在spring配置檔案中配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <bean id="throw" class="com.lee.advice.MyThrowAdvice"/> <bean id="demo" class="com.lee.service.DemoService"/> <aop:config> <aop:pointcut expression="execution(* com.lee.service.*.*(..))" id="mypoint"/> <aop:aspect ref="throw"> <aop:after-throwing method="throwMethod" pointcut-ref="mypoint" throwing="e1"/> </aop:aspect> </aop:config> </beans>
3.2.1<aop:aspect>的ref表示方法在哪個類中 3.2.2<aop:after-throwing >表示方法後剖出,還有<aop:after/> <aop:around/><aop:before/>等 3.2.3method表示出發這個通知時,呼叫哪個方法 3.2.4 throwing:異常物件名,必須和通知中方法引數名相同(可以不寫throwing這個屬性)