Spring AOP 与注释问题

发布于 2024-11-30 06:06:11 字数 108 浏览 1 评论 0原文

我的应用程序中有一个注释

@Trans

,我希望 AOP 拦截并管理事务。有没有教程可以告诉我如何在 Spring 3 中做到这一点?

i have an annotation in my app

@Trans

that i would like AOP to intercept and manage the transaction for. is there a tutorial out there that can tell me how to do this in spring 3?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风蛊 2024-12-07 06:06:11

如果您有自己的名为 @Trans 的注释,或者如果您指的是 Spring 自己的 @Transactional 注释,则可以使用 @within 切入点指示符。

来自 Spring 的 AOP 文档

@within - 限制匹配具有以下类型的连接点
给定注释(在类型中声明的方法的执行
使用Spring AOP时给定的注释)

任何连接点(仅在 Spring AOP 中执行方法)
目标对象的声明类型有一个@Transactional注释:

@within(org.springframework.transaction.annotation.Transactional)

因此,使用此建议,您可以围绕具有您指定的注释的所有方法创建切入点。

另外,这是一个类似的问题,您可能会发现它很有帮助:

服务的任何公共方法的 AOP 切入点表达式

If you have your own annotation called @Trans, or if you meant Spring's own @Transactional annotation, you can use the @within Pointcut Designator.

From Spring's AOP documentation:

@within - limits matching to join points within types that have the
given annotation (the execution of methods declared in types with the
given annotation when using Spring AOP)

and

any join point (method execution only in Spring AOP) where the
declared type of the target object has an @Transactional annotation:

@within(org.springframework.transaction.annotation.Transactional)

So using this advice, you can create a Pointcut around all methods that have the annotation you specify.

Also, this is a similar question, you may find it helpful:

AOP pointcut expression for any public method of a service

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文