Java 将bean注入DistributedTask的自定义拦截器

Java 将bean注入DistributedTask的自定义拦截器,java,infinispan,Java,Infinispan,是否可以拦截分布式任务,以便手动注入一些bean 我希望编写一个拦截器,接收任务对象,找到任何具有注入注释的字段,并将一些特定于它运行的节点的bean注入这应该是可能的;您必须覆盖拦截器中的visitDistributedExecuteCommand()方法。然而,似乎首选的方法是实现分布式tasklifecycle并将其注册到META-INF/services,就像CDI一样 请注意,在Infinispan 9.0中,拦截器SPI将被更改(这就是为什么在8.2中所有拦截器都被弃用的原因)。这应

是否可以拦截
分布式任务
,以便手动注入一些bean


我希望编写一个拦截器,接收任务
对象
,找到任何具有
注入
注释的字段,并将一些特定于它运行的节点的bean注入

这应该是可能的;您必须覆盖拦截器中的
visitDistributedExecuteCommand()
方法。然而,似乎首选的方法是实现
分布式tasklifecycle
并将其注册到
META-INF/services
,就像CDI一样


请注意,在Infinispan 9.0中,拦截器SPI将被更改(这就是为什么在8.2中所有拦截器都被弃用的原因)。

这应该是可能的;您必须覆盖拦截器中的
visitDistributedExecuteCommand()
方法。然而,似乎首选的方法是实现
分布式tasklifecycle
并将其注册到
META-INF/services
,就像CDI一样


请注意,在Infinispan 9.0中,拦截器SPI将被更改(这就是为什么所有拦截器在8.2中都被弃用)。

我已经尝试过了,我可以看到我的拦截器寄存器,但它不运行
visitDistributedExecuteCommand()
方法,而是运行put/get-visit方法。啊,我看到它没有包装在SingleRpcCommand中,因此直接调用它。所以,它是和VisitableCommand(以及拦截器中的方法)是混淆的,你能提交JIRA吗?我当然能提出JIRA。关于你的第二个建议,在不太了解CDI的情况下,是否有可能在运行时以编程方式实现这一点?本质上,我想在运行任务之前从Guice容器中取出一些东西并注入它们。在运行时,您似乎无法做到这一点:-/但您可以安装一个通用的DistributedTaskLifecycle,它将多路调用运行时注册的实现。我不喜欢ServiceLoader,但它的实现显然是为了调用扩展模块中的生命周期回调,而不是真正的用户注册回调。我已经尝试过了,我可以看到我的拦截器寄存器,但它没有运行
visitDistributedExecuteCommand()
方法,而是运行put/get-visit方法。啊,我看到它没有包装在SingleRpcCommand中,因此直接调用它。所以,它是和VisitableCommand(以及拦截器中的方法)是混淆的,你能提交JIRA吗?我当然能提出JIRA。关于你的第二个建议,在不太了解CDI的情况下,是否有可能在运行时以编程方式实现这一点?本质上,我想在运行任务之前从Guice容器中取出一些东西并注入它们。在运行时,您似乎无法做到这一点:-/但您可以安装一个通用的DistributedTaskLifecycle,它将多路调用运行时注册的实现。我不喜欢ServiceLoader,但它的实现显然是为了在扩展模块中调用生命周期回调,而不是真正的用户注册回调。