CDIで管理されるオブジェクトを得る
CDI管理のオブジェクトを得るには以下のようにします。
@Inject private BeanManager beanManager; @SuppressWarnings("unchecked") private <T> T getBean(final Class<T> pType) { final Set<Bean<?>> beans = this.beanManager.getBeans(pType); final Bean<? extends Object> bean = this.beanManager.resolve(beans); final CreationalContext<?> cc = this.beanManager.createCreationalContext(bean); final Object ret = this.beanManager.getReference(bean, pType, cc); return (T) ret; }
こちら↓のサイトを参考にさせていただきました。
http://soras.sblo.jp/article/35292434.html
キャストが必要なのが残念ですが、これでいけるようです。