我的UI中有一个按钮,不应总是添加它.它唯一要做的就是单击时触发CDI事件.
现在,如果没有可观察到事件的bean,我想阻止将Button添加到UI.有没有办法查看注入的Event对象上是否有任何观察者或阻止其注入,以便我检查其是否为null?
解决方法:
以下似乎有效:
@Inject
private BeanManager beanManager;
...
Set<ObserverMethod<? super Document>> observers =
beanManager.resolveObserverMethods(
new Document(), new AnnotationLiteral<Any>() {});
observers.isEmpty();
(尽管它可能不是最佳的体系结构.稍后,您可能会有一个观察者,该观察者只是一个空的实现,或者只是根据运行时条件忽略该事件.)