Spring AOP -- 10大细节之细节六:Spring对通知方法的约束

6、spring对通知方法的约束

6.1、Spring对通知方法不严格

例如:可以随意修改通知方法的访问权限符或者静态非静态属性,或者修改其返回值类型,也可以在方法体里面随意return任意值,这些都不会对结果有任何影响
在这里插入图片描述
运行结果:
在这里插入图片描述

6.2、spring对通知方法的唯一要求

通知方法里面的参数一定不能乱写
通知方法是spring利用反射调用的,每次方法调用得确定这个方法的参数表的值,参数表上的每一个参数,spring都得知道是什么
JoinPoint这个参数,spring是认识的,但是如果再写上一个别的spring不认识的参数,就会报错,如果我们还要传入一个参数的话,就必须告诉Spring,例如:返回值的异常的参数,就要在注解里面注明,然后再在通知方法里面传入这个参数,这样spring才认识。

6.3、补充

6.3.1、接收异常

在接收异常的信息的时候,一定要写明大的异常,如果写了小的异常,就有可能会接收不到异常信息,例如:
在这里插入图片描述
这里的将Exception改为NullPointException,再来看运行结果:
在这里插入图片描述

可以看到这里并没有捕获到异常,因为我们的除法异常是属于数学异常,而我们指定的是空指针异常,这里并不是空指针异常,所以就不能捕获到,所以异常一定要往大了写。

6.3.2、接收返回值

如果把接收的返回值的类型确定为某个类型,例如:
在这里插入图片描述

将原来的Object类型改为double类型,那除了double以外的返回值都是接收不到的,所以这里也要往大了写。
运行结果:这里的add方法由于最后的结果是int类型的,所以接收不到。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值