Jakarta CDI 强制 bean 构建/注册遗留事件监听器

问题描述 投票:0回答:1

我有一个新的 Jakarta EE (Qurakus) 应用程序和一些旧代码,其中有注册事件侦听器的方法。我为事件注册表做了一个包装。现在我需要某种方法来有效地注册大量事件侦听器。它看起来像这样:

@ApplicationScoped
public class EventRegistry {
    private Set<Listener<?>> listeners = Collections.synchronizedSet(new HashSet<>());

    public void register(Listener l) {
    }
    public void unregister(Listener l) {
    }
}
@ApplicationScoped
public class Listener1 implements Listener<MyEvent> {
    @Override
    public void onEvent(MyEvent e) {
    }
}

所以基本上我需要一种让听众注册的方法。我考虑过使用 Jakarta EE 事件,我在注册表的 PostConstruct 中触发该事件,并在每个侦听器中侦听该事件,然后侦听器自行注册。这是一种保存方法吗?或者如果不通过注入使用侦听器 bean 是否会被破坏?通常还有更好的方法来执行特定 bean 的操作(我将所有侦听器放在一个包中)。

java jakarta-ee cdi
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.