391 Stimmen

Was ist JNDI? Was ist die grundlegende Verwendung? Wann wird es verwendet?

  • Was ist JNDI ?

  • Wozu dient er grundsätzlich?

  • Wann wird sie eingesetzt?

307voto

duffymo Punkte 298898

Was ist JNDI?

Es steht für Java-Schnittstelle für Namen und Verzeichnisse .

Wozu dient er grundsätzlich?

JNDI ermöglicht es verteilten Anwendungen, Dienste auf eine abstrakte, ressourcenunabhängige Weise zu suchen.

Wann wird es verwendet?

Der häufigste Anwendungsfall ist das Einrichten eines Datenbankverbindungspools auf einem Java EE-Anwendungsserver. Jede Anwendung, die auf diesem Server eingesetzt wird, kann über den JNDI-Namen auf die benötigten Verbindungen zugreifen java:comp/env/FooBarPool ohne die Details der Verbindung kennen zu müssen.

Dies hat mehrere Vorteile:

  1. Wenn Sie eine Bereitstellungssequenz haben, bei der Anwendungen von devl->int->test->prod Umgebungen können Sie in jeder Umgebung denselben JNDI-Namen verwenden und die tatsächlich verwendete Datenbank verbergen. Die Anwendungen müssen bei der Migration zwischen Umgebungen nicht geändert werden.
  2. Sie können die Anzahl der Personen minimieren, die die Anmeldeinformationen für den Zugriff auf eine Produktionsdatenbank kennen müssen. Nur der Java EE-App-Server muss wissen, ob Sie JNDI verwenden.

124voto

Aniket Thakur Punkte 62911

Was ist JNDI?

Die Java-Schnittstelle für Namen und Verzeichnisse TM (JNDI) ist eine Anwendungsprogrammierschnittstelle (API), die Namens- und Verzeichnisfunktionen für Anwendungen bietet, die mit der Java TM Programmiersprache. Sie ist so definiert, dass sie unabhängig von einer bestimmten Verzeichnisdienstimplementierung ist. Auf diese Weise kann auf eine Vielzahl von Verzeichnissen (neue, im Entstehen begriffene und bereits eingesetzte) auf eine gemeinsame Weise zugegriffen werden.

Wozu dient er grundsätzlich?

Das meiste davon ist in der obigen Antwort enthalten, aber ich möchte hier die Architektur erläutern, damit die obige Antwort mehr Sinn ergibt.

enter image description here

Um JNDI zu verwenden, müssen Sie über die JNDI-Klassen und einen oder mehrere Dienstanbieter verfügen. Das Java 2 SDK, v1.3 enthält drei Dienstanbieter für die folgenden Benennungs-/Verzeichnisdienste:

  1. Leichtes Verzeichniszugriffsprotokoll (LDAP)
  2. Common Object Request Broker Architecture (CORBA) Common Object Services (COS) Namensdienst
  3. Java-Register für Fernmethodenaufrufe (RMI)

Im Grunde erstellen Sie also Objekte und registrieren sie bei den Verzeichnisdiensten, die Sie später nachschlagen und ausführen können.

47voto

mel3kings Punkte 7889

JNDI ist, vereinfacht ausgedrückt, eine Schnittstelle, über die Instanzen interner/externer Ressourcen wie z.B.

  javax.sql.DataSource, 
  javax.jms.Connection-Factory,
  javax.jms.QueueConnectionFactory,
  javax.jms.TopicConnectionFactory,
  javax.mail.Session, java.net.URL,
  javax.resource.cci.ConnectionFactory,

oder jeder andere Typ, der von einem JCA-Ressourcenadapter definiert wird. Er bietet eine Syntax, mit der ein Zugriff erstellt werden kann, unabhängig davon, ob es sich um einen internen oder externen Zugriff handelt, d. h. (comp/env bedeutet in diesem Fall, wo Komponente/Umgebung, es gibt viele andere Syntaxen):

jndiContext.lookup("java:comp/env/persistence/customerDB");

21voto

JNDI-Übersicht

JNDI ist eine API sp Technologie, die Namensgebung und Verzeichnisfunktionalität für Anwendungen, die in der Java Programmiersprache geschrieben sind. Sie ist konzipiert speziell für die Java-Plattform unter Verwendung des Objektmodell von Java. Verwendung von JNDI, Anwendungen, die auf Java-Technologie basieren basierende Anwendungen benannte Java Objekte beliebigen Typs speichern und abrufen. Darüber hinaus bietet JNDI Methoden zur Durchführung von Standard-Verzeichnisoperationen, wie z. B. Zuordnen von Attributen zu Objekten und die Suche nach Objekten anhand ihrer Attribute.

JNDI ist ebenfalls definiert einer bestimmten Namensgebung oder Verzeichnis Dienst-Implementierung definiert. Es ermöglicht Anwendungen den Zugriff auf verschiedene, möglicherweise mehrere, Namens- und Verzeichnisdiensten über eine gemeinsame API zugreifen. Verschiedene Benennungs- und Verzeichnisdienste Anbieter können nahtlos in diese gemeinsame hinter dieser gemeinsamen API. [ ] Java-Technologie-basierte Anwendungen die Informationen aus einer Vielzahl einer Vielzahl bestehender Benennungs- und Verzeichnisdiensten, wie LDAP, NDS, DNS und NIS(YP) zu nutzen, und ermöglicht Anwendungen die Koexistenz mit Legacy-Software und -Systemen koexistieren können.

Mit JNDI als Werkzeug, y neue leistungsfähige und portable Anwendungen erstellen, die nicht nur die Vorteile von Javas Objektmodells nutzen, sondern auch gut in die Umgebung integriert sind Umgebung integriert sind, in der sie eingesetzt werden.

Referenz

13voto

Sabin Chirila Punkte 679

Was ist JNDI?

JNDI steht für Java Naming and Directory Interface. Sie ist standardmäßig in J2EE enthalten.

Wozu dient er grundsätzlich?

Mit dieser API können Sie auf viele Arten von Daten zugreifen, wie Objekte, Geräte, Dateien, Namens- und Verzeichnisdienste, z. B. wird sie von EJB verwendet, um entfernte Objekte zu finden. JNDI wurde entwickelt, um eine gemeinsame Schnittstelle für den Zugriff auf bestehende Dienste wie DNS, NDS, LDAP, CORBA und RMI bereitzustellen.

Wann wird es verwendet?

Sie können die JNDI verwenden, um Benennungsoperationen durchzuführen, einschließlich Leseoperationen und Operationen zur Aktualisierung des Namensraums. Die folgenden Operationen werden beschrieben aquí .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X