我正在为网站学习Java和Spring。我有几次看到JNDI这个词。 它是什么,我需要学习它还是在构建Web应用程序的过程中需要它?
答案 0 :(得分:3)
JNDI是一种方便的方式,让应用程序说“我需要资源X”,而容器(例如Tomcat)则说“资源X可用,看看这里或那里实际配置了X”。
您可以使用上述机制来避免,例如,在代码中硬编码数据库属性。您可以通过配置文件来实现相同的目的,但在重新部署之间不会保留某些上下文(例如: .war 文件)配置文件,因此它们不是一个选项。
关于JNDI绑定内容的好例子是数据库数据源,对SMTP电子邮件服务器的引用,安全领域等。
将JNDI视为HashMap
,其中键是String
,值是具体对象或同一结构的另一个HashMap
。因此,找到像jndi://a/b
这样的值将决定转到顶级地图,找到关键a
并期望它的值是另一个地图。然后在该子图中查找键b
,并将相关值返回给用户。
答案 1 :(得分:2)
Java命名和目录接口(JNDI)是一种用于目录服务的Java API,它允许Java软件客户端通过名称发现和查找数据和对象。与所有与主机系统连接的Java API一样,JNDI独立于底层实现。也许你可以使用它,但我从来没试过!