命名和目录(JNDI) - 使用JNDI的缺陷是什么

时间:2009-12-04 12:30:29

标签: java jndi

命名和目录(JNDI) - 使用JNDI的缺陷是什么

2 个答案:

答案 0 :(得分:5)

这是我的前三名:

  1. 缺乏文档
  2. 半心半意的API
  3. 除了应用服务器之外,还没有找到任何人使用它
  4. 有几个教程如何使用JNDI,但大多数时候,当出现问题时你会陷入困境。该实现还对有用的错误消息表示不满。如果找不到密钥,那么您只需获取最里面的密钥名称 - 缺少引导到密钥的路径。

    也无法导航JNDI层次结构。当您无法导航时,与父级和子级构成层次结构有什么意义?

    那么java:comp/env呢?为什么会这样?我什么时候可以省略它?我何时必须使用它?有没有人添加过一个不以java:开头的树?

答案 1 :(得分:5)

问题有点模糊,但这里有几点需要考虑,而且与JNDI有关。

  1. JNDI的好处是对象创建与对象查找分离
  2. 在JDNI中直接查找阻碍可测试性,如果可能,更喜欢注入
  3. 如果您仍然使用直接查找,则需要自己或使用file-system实现模拟JNDI
  4. 如果您在应用中使用它,请注意类加载器问题。服务器
  5. 如果您计划实现自己的对象工厂(上下文,环境等),ObjectFactory中使用的参数会有些模糊不清。
  6. 每个JVM都有自己的JNDI。当客户端查找远程EJB时,会使用一个特殊工厂来返回对EJB的远程引用,但JNDI本身就是本地的。 (请注意,存在集群JNDI实现,但我没有经验)。
  7. EJB的命名将取决于app。服务器
  8. 全球和本地JNDI始终是混乱的来源
  9. 我从来没有见过任何人搜索JNDI目录,只搜索
  10. 的例子

    我使用JDNI在Glassfish中实现自定义资源,这没关系。但我发现JNDI经常引起混乱。