Вы можете ввести BeanManager
:
@Inject
BeanManager beanManager;
Затем вы можете получить бобы из контейнера CDI.Если ваши компоненты не имеют общего интерфейса, вы можете использовать:
Set<Bean<?>> beans = beanManager.getBeans(Object.class, new AnnotationLiteral<Any>() {}));
Затем выполнить итерацию по набору и отфильтровать его в соответствии с вашими потребностями.