1. 程式人生 > >AOP中AspectJ方式異常通知

AOP中AspectJ方式異常通知

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這個屬性)