我想写一个CDI扩展,它从数据库加载一些实体(实际上是实现特定接口的groovy脚本)并将它们提供为bean,以便可以获取所有实现这个接口由CDI注入。我想到了。像下面这样:在CDI扩展中使用实体管理器
public class ExtensionClass implements Extension {
@Inject
EntityManager em;
public void afterBeanDiscovery(@Observes final AfterBeanDiscovery event, final BeanManager manager) {
Entity entity = em.find();
//do sth with entity...
}
}
当我尝试注入实体管理器这种方式,它为空(这并不让我感到吃惊了,我没想到@注入到CDI扩展类的内部工作)。
是否有可能以某种方式访问CDI扩展中的实体管理器(例如,通过BeanManager)?或者我必须以另一种方式访问数据库?
谢谢,你的文章帮助我在正确的方向上搜索。 – 2013-05-17 10:31:12