配置异常通知的步骤

配置异常通知的步骤

profile-avatar

又双叒叕是程序汪2020-12-27 16:30

配置异常通知的步骤

 

异常-只有当切点报异常才能触发异常通知,否则没效果

 

在Spring中有AspectJ方式提供了异常通知

什么时候才能触发一下,不是说他怎么都执行,只有当切点抱不是可能就是抱了一茬抱一茬才能触发那其实总体布置我们就已经比较清楚了,想有个通知,我必须得新建一个,是不是得先新建个类?

怎么做?

要么实现ThrowsAdvice

要么定义一个(自定义)方法

 

在spring配置文件中配置相关的配置属性

配置文件中明确的指出来,当处异常通知的时候,需要执行的异常方法的方法名是什么?

 

针对于哪个切点

 

问题来了, Spring框架,如何知道这个方法名呢?

通过Java Bean获取类

 

配置总览+实现原理

 

test测试发现异常

 

demo类Spring未找到(配置文件没有声明)

<bean id="demo" class="com.wq.test.Demo"></bean>

测试结果:

 

原因切点没报异常,所以没有输出异常通知

 

那么现在我们要看到异常通知,我们要报异常,比如我们在测试类中,自定义一个算术异常

 

效果

 

spring异常通知被执行

 

如果异常被源程序处理了,Spring能检测到异常吗

 

结果是不会

 

如果父类异常抛出

 

调用的时候处理异常

 

结果:抛出异常被检测到,执行异常通知。

 

总结:


Spring AOP都是拦截service实现类的方法,一旦出现异常就让自动回滚,那么我们必须想要让spring知道有异常, Service 中不能try/cath,这就是为什么我们在处理业务逻辑的时候,一般都不能使用try/cath异常处理,这样就不能捕获异常,声明事物不能回滚。

想要在Spring-Aop中AspectJ触发异常通知----

1.新建类在类中选任意名称的方法

2.在spring中配置文件---- <aop:aspect ref="mythrow">ref的属性表示:方法在哪个类。<aop:xxxx/>表示什么通知 <aop:after-throwing method="myexception" pointcut-ref="mypoint"/>method: 当触发这个通知时调用哪个方法?对通知的要求非常低,方法想怎么写就怎么写,对配置文件要求非常严格,按照配置文件格式书写。

3.若要获得异常信息throwing="e":throwing-----异常对象名必须和通知中的方法传入参数, 名相同,


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值