Interfață Java de denumire și director

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 30 iulie 2016; verificările necesită 9 modificări .

Java Naming and Directory Interface ( JNDI ) este un set de API-uri Java organizate ca un serviciu de director care permite clienților Java să deschidă și să vizualizeze date și obiecte după numele lor. Ca orice alt API Java, ca set de interfețe , JNDI este independent de implementarea de bază. În plus, oferă o implementare a interfeței furnizorului de servicii  (SPI) care permite asocierea serviciilor de director cu un . Poate fi un server, un fișier sau o bază de date [1] .

Conceptul de JNDI se bazează pe două definiții principale: asociere și context. O asociere ( eng.  binding ) este o corespondență între un nume JNDI și un obiect. Context ( contextul englezesc  ) este un mediu în care este stocat un set de asocieri între obiecte și nume.

Arhitectură

Serviciile Java RMI  și  Jakarta EE  API utilizează abordările descrise în API-ul JNDI pentru a găsi obiecte pe web. API-ul oferă:

Partea SPI  a interfețelor vă permite să acceptați aproape orice tip de denumire a directorului, inclusiv:

Crearea unui context

Accesarea contextului și lucrul cu JNDI necesită importarea și interacțiunea cu API-urile și clasele din pachet javax.naming[4] .

import javax.naming.Context ; import javax.naming.InitialContext ; import javax.naming.NamingException ;

main() În cel mai simplu caz, se creează un context inițial din metoda . Tipul de denumire a directorului este specificat prin setarea variabilelor de mediu . O modalitate de a le seta este utilizarea unui obiect de tip Hashtable, care este transmis constructorului de clasă InitialContext:

Hashtable env = new Hashtable (); env . pune ( Context . INITIAL_CONTEXT_FACTORY , "com.sun.jndi.fscontext.RefFSContextFactory" ); Context ctx = new InitialContext ( env );

Recuperarea unui obiect salvat anterior dintr-un context este posibilă prin apelarea Context.lookup() obiectului context [5] :

Obiect obj = ctx . căutare ( "/com/sampleproject/SampleObject" );

Note

  1. Documentația Oracle. Concepte JNDI . docs.oracle.com . docs.oracle.com. Preluat la 5 iunie 2017. Arhivat din original la 23 mai 2017.
  2. Serviciul de nume și director JNDI . java-online.ru Consultat la 5 iunie 2017. Arhivat din original pe 9 iunie 2017.
  3. Documentația Oracle. Prezentare generală JNDI . docs.oracle.com . docs.oracle.com. Preluat la 5 iunie 2017. Arhivat din original la 24 mai 2017.
  4. javax.naming . Documentația API Java Platform SE 8 . Data accesului: 5 iunie 2017. Arhivat din original pe 17 martie 2017.
  5. Exemplu de denumire . Tutorial Oracle . Consultat la 5 iunie 2017. Arhivat din original la 31 mai 2017.