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这个属性)

猜你喜欢

转载自blog.csdn.net/qq_40392686/article/details/82957368