【发布时间】:2014-10-12 19:39:42
【问题描述】:
我想为我的业务逻辑实现一种模式,类似于处理 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<...> 选择 bean 仅适用于类型级限定符和/或类型。要真正找到方法,我需要遍历所有方法。我有点担心查找成本和/或必须管理缓存或某种类型的东西。
【问题讨论】:
标签: java jakarta-ee reflection annotations cdi