Java-namngivning och kataloggränssnitt

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 30 juli 2016; kontroller kräver 9 redigeringar .

Java Naming and Directory Interface ( JNDI ) är en uppsättning Java API :er organiserade som en katalogtjänst som tillåter Java-klienter att öppna och visa data och objekt med deras namn. Som alla andra Java API, som en uppsättning gränssnitt , är JNDI oberoende av den underliggande implementeringen. Utöver detta tillhandahåller den en SPI-implementering ( Service Provider Interface  ) som gör att katalogtjänster kan paras med en . Det kan vara en server, en fil eller en databas [1] .

Begreppet JNDI bygger på två huvuddefinitioner: association och sammanhang. En association ( eng.  binding ) är en överensstämmelse mellan ett JNDI-namn och ett objekt. Kontext ( engelska  context ) är en miljö där en uppsättning associationer mellan objekt och namn lagras.

Arkitektur

Java RMI  och  Jakarta EE  API-tjänster använder de metoder som beskrivs i JNDI API för att hitta objekt på webben. API:et tillhandahåller:

SPI  -delen av gränssnitten låter dig stödja nästan alla typer av katalognamn, inklusive:

Skapa ett sammanhang

Att komma åt sammanhanget och arbeta med JNDI kräver import och interaktion med API:er och klasser från paketet javax.naming[4] .

importera javax.naming.Context ; importera javax.naming.InitialContext ; importera javax.naming.NamingException ;

main() I det enklaste fallet skapas ett initialt sammanhang från metoden . Katalognamnstypen anges genom att ställa in miljövariabler . Ett sätt att ställa in dem är att använda ett objekt av typen Hashtable, som skickas till klasskonstruktorn InitialContext:

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

Att hämta ett tidigare sparat objekt från ett sammanhang är möjligt genom att anropa Context.lookup() kontextobjektet [5] :

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

Anteckningar

  1. Oracle-dokumentation. JNDI-koncept . docs.oracle.com . docs.oracle.com. Hämtad 5 juni 2017. Arkiverad från originalet 23 maj 2017.
  2. JNDI namngivning och katalogtjänst . java-online.ru Hämtad 5 juni 2017. Arkiverad från originalet 9 juni 2017.
  3. Oracle-dokumentation. JNDI Översikt . docs.oracle.com . docs.oracle.com. Hämtad 5 juni 2017. Arkiverad från originalet 24 maj 2017.
  4. javax.naming . Java Platform SE 8 API-dokumentation . Tillträdesdatum: 5 juni 2017. Arkiverad från originalet 17 mars 2017.
  5. Namngivningsexempel . Oracle handledning . Hämtad 5 juni 2017. Arkiverad från originalet 31 maj 2017.