关于spring的ThrowsAdvice

本文分享了在项目开发过程中从EJB3转向Spring的经历,并针对Spring AOP中ThrowsAdvice接口使用上的一个常见误解进行了澄清。作者指出,在实现ThrowsAdvice接口时,afterThrowing方法的参数数量必须为一个或四个,而不能是两个或三个。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

采用什么平台开发项目着实让我们晕了好一阵子,先是EJB3,但是听说WAS对EJB3的支持才刚刚开始(去年十二月才推出正式的Feature pack),国内还没有案例,也没有培训,更加没有技术支持 ,老板自然不乐意了。只好无奈的换成EJB2,尽管都不太想学,但也勉强看了几天书,突然又说要用spring,吐血中.......不过怎么也比EJB2强了,马不停蹄借来 廖雪峰写的《spring2.0 核心技术与最佳实践》,是网上盛传的一本好书。看完之后对比一下老罗的《精通spring2.0》,思路是比较清晰,适合初学者(“精通”系列的噩梦???)

不过好书也是有瑕疵的,今天就让我逮着了一个,关于SPRING的AOP

aop的一个切面接口是 ThrowsAdvice,这是个标记接口,里面没有定义任何方法。书上说,根据spring文档,必须定义一个 afterThrowing([Method, args, target], subclassOfThrowable) 形式的方法,前面三个参数可选,也就是你可以写成 afterThrowing( args, target, subclassOfThrowable) ,也可以写成 afterThrowing( target, subclassOfThrowable) 

事实上如果真的这么做,运行时会抛出 At least one handler method must be found in class 形式的异常。在确认自己没有打错字之后,只好去查spring2.0的手册,才发现上面是这么说的:方法可以有一个或四个参数。 也就是说,不能有两个、三个参数,方法的形式只能有两种: afterThrowing([Method, args, target], subclassOfThrowable)  或者 afterThrowing( subclassOfThrowable) 

看来老廖也疏忽了~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值