CDI和JNDI服务之间有什么关系?

时间:2016-02-25 16:13:44

标签: java java-ee dependency-injection cdi jndi

据我所知,“pre-CDI”EJB和资源注入解决方案(@EJB@Resource和其他人,要清楚)使用JNDI服务来查找容器“已知”的对象通过JNDI注册,然后根据要求注入它们。

相反,CDI依赖于bean-discovery-mode参数(ALLANNOTATED)来发现需要管理的bean。但是这个过程实际上是如何进行的?运行时扫描......什么? JNDI根本没参与吗?

我觉得我对整个机制有些不对劲......

1 个答案:

答案 0 :(得分:1)

CDI specification中详细描述了bean发现过程。基本上,CDI容器会扫描bean部署档案以查找具有特定注释的类。

JNDI根本没参与。与EJB不同,CDI bean通常不能通过JNDI查找。

只能在java:comp/BeanManager的名称下查找BeanManager本身,但这几乎不需要,除非您需要从非托管代码访问托管bean。

相关问题