Java Navngivning og Directory Interface

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 30. juli 2016; checks kræver 9 redigeringer .

Java-navne- og kataloggrænsefladen ( JNDI ) er et sæt Java API'er organiseret som en bibliotekstjeneste, der giver Java-klienter mulighed for at åbne og se data og objekter efter deres navne. Som enhver anden Java API er JNDI som et sæt grænseflader uafhængig af den underliggende implementering. Ud over dette giver det en SPI-implementering ( service provider interface  ), der gør det muligt at parre katalogtjenester med en . Det kan være en server, en fil eller en database [1] .

Begrebet JNDI er baseret på to hoveddefinitioner: association og kontekst. En association ( eng.  binding ) er en overensstemmelse mellem et JNDI-navn og et objekt. Kontekst ( engelsk  kontekst ) er et miljø, hvor et sæt associationer mellem objekter og navne er gemt.

Arkitektur

Java RMI-  og  Jakarta EE  API-tjenesterne bruger de fremgangsmåder, der er beskrevet i JNDI API'et til at finde objekter på nettet. API'en giver:

SPI  -delen af ​​grænsefladerne giver dig mulighed for at understøtte næsten enhver form for mappenavngivning, herunder:

Oprettelse af en kontekst

Adgang til konteksten og arbejde med JNDI kræver import og interaktion med API'er og klasser fra pakken javax.naming[4] .

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

main() I det enkleste tilfælde skabes en indledende kontekst ud fra metoden . Biblioteknavngivningstypen angives ved at indstille miljøvariabler . En måde at indstille dem på er at bruge et objekt af typen Hashtable, som sendes til klassekonstruktøren InitialContext:

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

Hentning af et tidligere gemt objekt fra en kontekst er muligt ved at kalde Context.lookup() kontekstobjektet [5] :

Objekt obj = ctx . opslag ( "/com/sampleproject/SampleObject" );

Noter

  1. Oracle-dokumentation. JNDI-koncepter . docs.oracle.com . docs.oracle.com. Hentet 5. juni 2017. Arkiveret fra originalen 23. maj 2017.
  2. JNDI navngivning og katalogtjeneste . java-online.ru Hentet 5. juni 2017. Arkiveret fra originalen 9. juni 2017.
  3. Oracle-dokumentation. JNDI Oversigt . docs.oracle.com . docs.oracle.com. Hentet 5. juni 2017. Arkiveret fra originalen 24. maj 2017.
  4. javax.name . Java Platform SE 8 API dokumentation . Dato for adgang: 5. juni 2017. Arkiveret fra originalen 17. marts 2017.
  5. Eksempel på navn . Oracle Tutorial . Hentet 5. juni 2017. Arkiveret fra originalen 31. maj 2017.