CDIで特定のスコープの自分で作成したクラスのインスタンスを取り出す
下記はリクエストスコープでの例
BeanManager beanManager = InitialContext.doLookup("java:comp/BeanManager"); Set<Bean<?>> allBeans = beanManager.getBeans(Object.class, new AnnotationLiteral<Any>() { }); @SuppressWarnings("rawtypes") CreationalContext creationalContext = beanManager.createCreationalContext(null); List<Object> objects = new ArrayList<Object>(); for (@SuppressWarnings("rawtypes") Bean bean : allBeans) { if ((bean.getName() != null)) { if (!bean.getName().equals("javax.enterprise.context.conversation")) { if (bean.getScope() == RequestScoped.class) { Object object = beanManager.getReference(bean, bean.getBeanClass(), creationalContext); objects.add(object); } } } }