gpt4 book ai didi

java - 我可以使用 CDI 查找任何 bean 中所有带限定符注释的方法吗?

转载 作者:行者123 更新时间:2023-12-02 05:23:06 27 4
gpt4 key购买 nike

我想为我的业务逻辑实现一种模式,类似于处理 WebSocket 注释方法的方式。给定传入消息的特定参数的值,我想调用动态查找的托管 bean 中的带注释的方法。例如,给出以下设置:

@Qualifier
@Target( ElementType.METHOD )
@Retention( RetentionPolicy.RUNTIME )
public @interface Handler { }

@ApplicationScoped public class MyHandler1 {

@Handler public void someMethod() { }

@Handler public void otherMethod() { }

}

然后我想编写一个函数来根据该参数值选择一个方法。它应该像给定“someMethod”作为值一样简单,并使用名为“someMethod”的方法查找我的合格托管 bean 并调用它。

我的问题是,使用 Instance<...> 选择 beans 仅适用于类型级限定符和/或类型。要真正找到方法,我需要遍历所有方法。我有点担心查找的成本和/或必须管理缓存或某种东西。

最佳答案

您不应该使用限定符来标记方法,任何其他注释都可以。

如果您确实想使用 CDI,那么您可以编写一个 CDI 扩展来观察 ProcessAnnotatedType 事件。

话虽如此,从您的问题描述来看,我不太确定您到底想做什么,或者 CDI 是否是最好的方法。

关于java - 我可以使用 CDI 查找任何 bean 中所有带限定符注释的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26329197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com