【问题标题】:JNDI Architecture: JNDI API, Service Provider, SPI?JNDI 架构:JNDI API、服务提供者、SPI?
【发布时间】:2017-04-27 07:25:01
【问题描述】:

我已经使用 link 阅读了来自 oracle 的 JNDI 在线教程。

如下图:

对此,我有以下问题:

1) JNDI API - 这只是作为 J2SE 一部分的规范/接口吗?也就是说,当我们调用这个 API 的某个方法时,这是做真正的工作还是在内部调用其他人,由第三方提供?

2) 命名管理器 - 我根本没有得到这个,也没有提供任何解释?这是 J2SE 的一部分吗?是 API 吗?

3) JNDI SPI - 这是什么? JNDI API 和 JNDI SPI 有什么关系? JNDI API 是否在内部调用 JNDI SPI 来完成实际工作?谁提供这些 JNDI SPI?

4) 服务提供者是什么意思?

这个我看不懂,谁能帮我简单的理解一下?

【问题讨论】:

    标签: java jndi


    【解决方案1】:

    1) JNDI API - 这只是作为 J2SE 一部分的规范/接口吗?

    是的。

    也就是说,当我们调用这个 API 的某个方法时,它会做真正的工作吗

    没有。

    或者它在内部调用其他人,由第三方提供?

    是的。

    2) 命名管理器 - 我完全没有得到这个,也没有提供任何解释?这是 J2SE 的一部分吗?是 API 吗?

    它是一种幕后粘合剂,通过为 JNDI 提供商做大量样板来帮助他们。不然我不知道是什么意思。

    3) JNDI SPI - 这是什么? JNDI API和JNDI SPI是什么关系?

    见下文。

    JNDI API 是否在内部调用 JNDI SPI 来完成实际工作?

    是的。

    谁提供这些 JNDI SPI?

    容器,或者在某些情况下是 JRE,例如 RMI 提供程序、LDAP 提供程序、DNS 提供程序、COSNaming 提供程序。

    4) 服务提供者是什么意思?

    提供服务的代码。我不认为这是一个谜。实现构成 API 的接口的代码。

    【讨论】:

    • 感谢您的回答。关于 JNDI SPI 的另一个问题。如果我想使用 openLDAP,实现者会为 openLDAP 提供 SPI 吗?
    • 叹息。我已经回答过了。 LDAP 的提供者是 JRE 的一部分。有时我想知道我为什么要打扰。
    • 感谢您的宝贵意见,我尊重您花时间帮助会员。您确实提到 J2SE 确实有 LDAP 提供程序。由于不同供应商可能有不同数量的 LDAP 实现,这就是我问这个问题的原因。与 J2SE 捆绑在一起的 LDAP 提供程序是否能够与任何类型的 LDAP 实现进行通信?很抱歉无法完全理解这一点,同时我尊重您的时间和您提供的帮助。最好的问候
    • LDAP 是一种协议。因此,不需要一个以上的提供者。所以只有一个提供者。在 JRE。就像我说的。两次。现在是三遍。
    • 同样适用于 RMI;域名系统;和COS命名。奇怪的是,这就是为什么它们都随 JRE 一起提供的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多