Spring AOP 建议类型

本文深入解析Spring AOP的五种建议类型:Beforeadvice、Afterreturningadvice、Afterthrowingadvice、After(finally)advice和Aroundadvice。讨论了每种建议的执行时机及其在实际开发中的应用,并强调了使用最具体建议类型的重要性。

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

Spring AOP 包括如下类型的建议:

  • Before advice:在连接点之前执行的建议。它没有能力阻止连接点的执行。

  • After returning advice:在连接点正常执行后执行。

  • After throwing advice:在方法抛出异常的时候执行。

  • After (finally) advice:在一个连接点执行后执行,不管这个连接点是怎样退出的。正常或者异常返回,都会执行。

  • Around advice:一个在连接点周围执行的建议。这个是最强大的一种建议。

  • Around advice  能够在方法调用的时候自定义一下行为。他负责选择继续执行这个连接点,或者通过返回自己的值或者抛出异常来截断这个被建议的方法的执行。

Around advice 是最普通的一种建议。因为Spring AOP,也像 Aspectj一样,提供了全部范围的建议类型。我们推荐你用最少能力的建议类型。比如,你只是想利用方法的返回值更新一个缓存,此时你用returning advice 会比around advice 更加好,即使around advice 也能够实现相同的事情。使用最具体的一个建议类型能够提供一个简单的编程模型,同时提供更少的潜在错误。比如:你不需要在用来实现around advice 的joinPoint 中 调用 proceed() 方法。所以,不调用,就不会发生任何错误。

所有的建议参数都是在编译的时候就确定的类型,所以你在使用适合的类型建议参数,而不是一些 object 数组。

切入点匹配连接点的概念是AOP的关键。它可以使AOP和一些只提供拦截的老的技术区分开来。切入点使得建议不依赖面向对象的目标层级。比如,你可以通过声明事务管理给一系列的在不同的对象的方法提供around advice 。(比如所有的在服务层的商务操作)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值