如何在 Guice 中定义方法拦截器的顺序?

2024-04-26

有时需要知道 Guice 中拦截方法调用的方法拦截器的顺序。一个简单的示例场景是使用 guice-persist 提供的 @Transactional 方法拦截器和自定义 @Retry 方法拦截器。重试拦截器必须在事务拦截器外部运行,以确保重试不会在同一事务内执行。

在 Spring 中,您可以使用拦截器的 Ordered 接口来确保事务拦截器在重试拦截器内执行。有没有办法在 Guice 中达到同样的效果?


Guice 按照拦截器的注册顺序调用它们。所以如果你像这样定义它们:

bindInterceptor(any(), annotatedWith(Retry.class), retryInterceptor);
bindInterceptor(any(), annotatedWith(Transactional.class), transactionalInterceptor);

or

bindInterceptor(any(), annotatedWith(Retry.class), retryInterceptor, transactionalInterceptor);

the retryInterceptor将在之前执行transactionalInterceptor.

如果您有多个模块,则同样适用 - 第一个模块的拦截器在秒模块的拦截器之前执行,依此类推。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Guice 中定义方法拦截器的顺序? 的相关文章

  • @Transactional 和 AOP 之间的混淆

    Transactional 是否在 Spring 3 中替代了 AOP 它们相同吗 我可以说 Transactional在内部实现了AOP吗 The Transactionnal注释只是声明方法 或类的所有方法 是事务性的简单方法 Spri
  • Delphi 6:在缺少抽象类方法时强制编译器错误?

    我使用的是 Delphi Pro 6 现在 了解类是否缺少基类抽象方法的唯一方法是等待 IDE 发出 包含抽象方法 base class 抽象方法名称 警告或在尝试调用缺少的方法时等待运行时抽象错误方法 前者是不够的 因为它只查找当前项目中
  • 如何使用“prototype”函数正确编写 JavaScript 属性和方法?

    我正在尝试学习如何使用 javascript 原型创建和使用 javascript 属性和方法 但遇到了一些困难 在下面的代码中 我尝试创建一个名为 radius 的简单对象 其半径为 4 并具有一个名为 getCircumference
  • 编译器错误:对调用的引用不明确

    Case 1 static void call Integer i System out println hi i static void call int i System out println hello i public stati
  • 如何在响应拦截器中再次发送请求?

    我在我的应用程序中创建了一个拦截器来检测会话丢失 服务器发送 HTTP 419 在这种情况下 我需要从服务器请求一个新会话 然后我想自动再次发送原始请求 也许我可以将请求保存在请求拦截器中 然后再次发送 但可能有更简单的解决方案 请注意 我
  • 这两个绑定声明与 Google Guice 有什么区别?

    有什么区别 bind FooImpl class in Scopes SINGLETON bind Foo class to FooImpl class and bind Foo class to FooImpl class in Scop
  • 如何从一个 cfc 文件中函数的查询中调用另一个 CFC 文件中的函数?

    我有一个具有多种功能的 cfc 文件 info cfc 如下所示
  • AspectJ - 匹配具有通用参数的方法的切入点

    我有一个接受任何类型作为其参数的通用方法 例如 我想要一个切入点 它与仅以 String 类型作为参数的方法的调用相匹配 最终的要求是将建议执行的范围限制为 字符串 参数 这是我的通用类和方法 public class Param
  • 有没有办法在Python中调用子类定义的方法?

    The init 方法定义了创建类的实例时要执行的操作 创建子类时我可以做类似的事情吗 假设我有抽象类Entity class Entity def onsubclasscreation cls for var in cls annotat
  • 有人有 Postsharp 制作经验吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Grails 中使用 AOP 不适用于服务

    我使用 Grails 2 2 3 并在 grails app conf spring resources groovy 中键入以下代码 beans xmlns aop http www springframework org schema
  • 具有多个注释的方法上的 AspectJ 切入点

    使用加载时编织 纯 AspectJ 我们有2个注释 Time and Count 以及一些带注释的方法 Time name myMethod1Time Count name myMethod1Count public void myMeth
  • 在spring mvc中修改请求URI

    我有一个基于 spring mvc 的应用程序 我想在请求 URI 到达控制器之前修改它 例如 控制器的 RequestMapping 是 abc xyz 但传入的请求是 abc 1 xyz 我想修改传入请求以将其映射到控制器 解决方案1
  • 如何在flutter项目中使用http拦截器?

    我必须向我的所有 Api 添加标头 有人告诉我为此使用 http 拦截器 但我无法理解如何做到这一点 因为我是颤振的新手 谁能帮我举个例子吗 您可以使用http 拦截器 https pub dev packages http interce
  • 如何使用 javascript 更改文件扩展名

    有谁知道在 Javascript 中更改文件扩展名的简单方法吗 例如 我有一个带有 first docx 的变量 但我需要将其更改为 first html 这将改变字符串包含文件名 let file first docx file file
  • c# 通过内存地址调用方法

    我正在尝试在 C 中的指定内存地址调用函数 以下是我在 C 中的操作方法 typedef void do int i auto doActor do 0xAAAABEEF doActor 1 如果可能的话 如何在 C 中复制这种行为 对 C
  • 无法从 C# WPF 中的另一个窗口调用方法

    好吧 假设我有两个窗户 在第一个中我有一个方法 public void Test Label Content works 在第二个方法中 我称此方法为 MainWindow mw new MainWindow mw Test 但什么也没发生
  • Guice的@Singleton注解可以继承吗?

    假设我有这门课 Singleton public class Parent 和这个类 public class Child extends Parent 在我的 Java 应用程序中 我的应用程序依赖于Guice注入来创建对象 如果我创建一
  • 为什么 Jersey 控制器未检测到我的方面(使用自定义注释)?

    我想在 Jersey 控制器上创建一个方面来测量服务执行所需的时间 我正在与我的切入点作斗争 因为它没有被检测到 而且我的方面永远不会启动 我尝试过使用很多切入点 例如 execution Monitor execution public
  • 内联还有用吗? [复制]

    这个问题在这里已经有答案了 我相信 inline已经过时了 因为我读过here https isocpp org wiki faq inline functions 无论您如何将函数指定为inline 这是允许编译器忽略的请求 编译器可能会

随机推荐

  • CSS,悬停一个元素,影响另一个元素

    当我将鼠标悬停在 li a 上时 我可以影响普通 CSS 中的另一个元素吗 因为我试图在悬停链接时将一个框作为背景元素滑入 与此网站导航完全相同 只是不是在激活时使用 而是通过悬停来使用 http www zindhai com http
  • Mobile Safari HTML5 视频 - 事件侦听器“结束”不会第二次触发

    我正在尝试添加一个按钮 按下时将播放视频 并且当视频结束时显示图像 问题是 我第二次按下按钮时 视频结束 并且没有任何反应 就好像事件侦听器没有被调用一样 var video document getElementById video fu
  • PHP 删除字符串中最后一次出现某个字符后的字符

    所以测试用例字符串可能是 http example com u ben Or http example com 我试图删除最后一次出现 之后的所有内容 但前提是它不是 http 的一部分 这可能吗 到目前为止我有这个 url substr
  • 如何从数组C++中获取唯一的字符串

    我知道我的问题对某些人来说可能很愚蠢 但我整天用谷歌搜索并尝试制定自己的解决方案 但我失败了 请帮助 我需要从简单的字符串数组中打印所有唯一的字符串 example 输入 嗨 我的 名字 嗨 土豆 文本 名字 嗨 输出 我的 土豆 文本 我
  • 控制换行以使线条等宽

    如果 h1 太长而无法容纳在一行中并换行到下一行 我希望这两行的宽度大致相同 我已经到处寻找 CSS 解决方案 但没有成功 CSS 真的不可能做到这一点吗 这似乎是一个如此简单的事情 在很多情况下都很有用 所以我真的很困惑 这似乎不能用 C
  • Chrome 开发者工具 CSS 文件中的某些样式变灰/不可编辑?

    我发现了很多关于 Chrome 开发者工具中灰色样式的问题 但没有一个问题能够描述我的奇怪行为 我在 CSS 文件中有简单的类样式 由于某种原因 我可以编辑其中一个 但不能编辑另一个 CSS 文件 result background col
  • ng 完成不再存在

    刚刚更新为使用最新版本的 Angular CLI 6 0 如何为 ng 二进制文件设置 bash 补全 它曾经是 lt ng completion bash in the bashrc文件 但现在不再了 这还能实现吗 根据this http
  • I/system_server:单向函数结果将被丢弃,但完成状态为 OK 且包裹大小为 4

    我有时会在 logcat 中看到这个 但不知道这意味着什么 我通过在函数参数中传递视图来解决 My XML
  • 从右侧使用 SlidingPaneLayout?

    是否有可能以某种方式使用Android的SlidingPaneLayout来完成它所做的事情 除了从相反的一侧 IE 我想滑动屏幕的右侧而不是左侧来显示第二个窗格 并且它从右侧而不是左侧滑入 理想情况下 我正在寻找一种方法来使用此布局或对其
  • 如何使用 比较 2 个字符串?

    我正在尝试显示一个
  • 在 EF Core 中编写不区分大小写的搜索查询?

    我想问一个关于 SQL Server 和 EF Core 的问题 数据库中的排序规则是Latin1 CI AS我想编写一个包含土耳其字符的搜索查询 在数据库中 人员 表中有一条名为 SEL M 的记录 当我在 EF Core 中编写这样的查
  • html5视频上的圆角

    有没有办法使用 CSS3 border radius 属性截掉 html5 视频元素的角 查看这个例子 http jsfiddle net inquisitive web developer vDPW2 它不起作用 创建一个带有圆角和溢出
  • 创建 32 位计数器时出现全局变量问题

    我正在尝试做正交解码 using 爱特梅尔 Xmega AVR微控制器 Xmega只有16 bit柜台 另外 我已经用完了所有可用的计时器 现在要做32 bit柜台我用过一个16 bit柜台并在其over under flow interr
  • VB.NET 中的下拉菜单

    我有一个小要求 那就是 表单上有两个组合框 用于填充员工姓名和角色 我按如下方式填充组合框 我创建了一个名为 DbConnect 的类 其中有 02 个函数 Public Function getEmployees As DataTable
  • 如何在 WPF 和 ASP.NET MVC 应用程序之间共享最多的代码?

    我可以使用什么架构和模式在 WPF 和 ASP NET MVC 应用程序之间共享最多的模型和逻辑代码 我试图在这里实现更多目标 而不仅仅是将我的数据实体与两个演示项目分开 还有很多共同点 例如关于在什么条件下显示什么 何时需要某些内容等的
  • 如何使用 XSL 在 Mozilla 中显示。

    我怎样才能显示 nbsp 在 Mozilla 中使用 XSL 我尝试过 CDATA 但没有成功 我使用的是火狐浏览器3 5 5 因为您无法将 HTML 字符实体直接放入 XSLT 源中 除了 lt gt apos quot and amp
  • Android 浏览器报告屏幕尺寸错误?

    我正在开发一个移动网站 我遇到了一个有趣的问题 我正在我的台式机以及我的 Motorola Droid Android 2 2 上进行测试 我设置了媒体查询来加载 3 个不同的样式表 320 像素宽 480 像素宽和 640 像素宽 我注意
  • 使用会话 ID 将消息添加到 IAsyncCollector 主题输出

    目前是否可以将消息推送到 Azure 函数的 IAsyncCollector 主题输出并设置会话 ID 我的主题实际上是关于 FIFO 排序的 所以我们必须设置会话 因此 我们设想只设置一个 Guid 作为唯一的会话 ID 我知道如何通过此
  • 显示MJPEG流的跨浏览器解决方案

    有没有一种轻量级 免费且可靠的方式在跨浏览器环境中显示 MJPEG 我正在尝试显示来自轴2120 http www axis com techsup cam servers cam 2120 index htm我正在开发的网站上有 IP 摄
  • 如何在 Guice 中定义方法拦截器的顺序?

    有时需要知道 Guice 中拦截方法调用的方法拦截器的顺序 一个简单的示例场景是使用 guice persist 提供的 Transactional 方法拦截器和自定义 Retry 方法拦截器 重试拦截器必须在事务拦截器外部运行 以确保重试