306 votes

Qu'est-ce que JNDI ? Quelle est son utilisation de base ? Quand est-il utilisé ?

  • ¿Qué es? JNDI ?

  • Quelle est son utilisation de base ?

  • Quand est-il utilisé ?

1 votes

Voir l'article de blog personnel pour la définition et les cas d'utilisation : tshikatshikaaa.blogspot.com/2013/01/

257voto

duffymo Points 188155

Qu'est-ce que JNDI ?

Il s'agit de Interface Java de dénomination et de répertoire .

Quelle est son utilisation de base ?

JNDI permet aux applications distribuées de rechercher des services d'une manière abstraite et indépendante des ressources.

Quand est-il utilisé ?

Le cas d'utilisation le plus courant est la mise en place d'un pool de connexion de base de données sur un serveur d'applications Java EE. Toute application déployée sur ce serveur peut accéder aux connexions dont elle a besoin en utilisant le nom JNDI. java:comp/env/FooBarPool sans avoir à connaître les détails de la connexion.

Cela présente plusieurs avantages :

  1. Si vous avez une séquence de déploiement où les applications passent de devl->int->test->prod vous pouvez utiliser le même nom JNDI dans chaque environnement et masquer la base de données réellement utilisée. Les applications n'ont pas à être modifiées lorsqu'elles migrent entre les environnements.
  2. Vous pouvez réduire au minimum le nombre de personnes qui doivent connaître les informations d'identification pour accéder à une base de données de production. Seul le serveur d'applications Java EE doit savoir si vous utilisez JNDI.

10 votes

Donc c'est une alternative plus sûre que d'avoir un fichier de propriétés avec vos informations de connexion jdbc ?

4 votes

@grinch : Essentiellement oui. C'est plus sûr et plus standardisé, ce qui facilite le déploiement (pas besoin de deviner quel doit être le nom du fichier de propriétés, etc.)

0 votes

Quelle est alors la différence entre l'utilisation des variables d'environnement et JNDI ? S'agit-il d'un concept similaire ?

108voto

Aniket Thakur Points 10135

Qu'est-ce que JNDI ?

L'interface Java de dénomination et de répertoire TM (JNDI) est une interface de programmation d'applications (API) qui fournit des fonctionnalités de nommage et de répertoire aux applications écrites à l'aide du langage Java. TM langage de programmation. Il est défini pour être indépendant de toute implémentation spécifique de service d'annuaire. Ainsi, il est possible d'accéder à une variété d'annuaires (nouveaux, émergents et déjà déployés) d'une manière commune.

Quelle est son utilisation de base ?

La plupart de ces questions sont couvertes dans la réponse ci-dessus, mais je voudrais fournir une architecture ici afin que la réponse ci-dessus ait plus de sens.

enter image description here

Pour utiliser JNDI, vous devez disposer des classes JNDI et d'un ou plusieurs fournisseurs de services. Le Java 2 SDK, v1.3 comprend trois fournisseurs de services pour les services de nommage/répertoire suivants :

  1. Protocole d'accès aux annuaires légers (LDAP)
  2. Architecture CORBA (Common Object Request Broker Architecture) Service de noms COS (Common Object Services)
  3. Registre Java d'invocation de méthode à distance (RMI)

En gros, vous créez des objets et les enregistrez dans les services d'annuaire, sur lesquels vous pouvez ensuite effectuer des recherches et exécuter des opérations.

36voto

mel3kings Points 1201

En termes simples, JNDI est essentiellement une interface permettant d'obtenir des instances de ressources internes/externes telles que

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

ou tout autre type défini par un adaptateur de ressources JCA. Il fournit une syntaxe permettant de créer des accès, qu'ils soient internes ou externes, c'est-à-dire (comp/env dans ce cas signifie où composant/environnement, il y a beaucoup d'autres syntaxes) :

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

2 votes

Ce n'est qu'une partie du tableau. JNDI vous permet de rechercher des objets Java - il peut s'agir de ressources telles qu'une source de données, ou d'autres choses, même des objets ordinaires. java.lang.String pour les informations de configuration.

3 votes

@sleske Je vous suggère de faire votre propre réponse alors.

15voto

Aperçu de JNDI

JNDI est une API spécifiée dans la technologie Java qui fournit des fonctionnalités de nom et de d'annuaire aux applications écrites en langage de . Elle est conçue spécialement pour la plate-forme Java en utilisant le modèle objet de Java. L'utilisation de JNDI, les applications basées sur la technologie Java peuvent stocker et récupérer des objets Java nommés de n'importe quel type. En outre, JNDI fournit des méthodes permettant d'effectuer opérations d'annuaire standard, telles que l'association d'attributs aux objets et la recherche d'objets à l'aide de leurs attributs.

JNDI est également défini indépendamment de d'une implémentation de service de nom ou d'annuaire d'annuaire spécifique. Il permet applications d'accéder à différents différents, voire multiples, services de nommage et d'annuaire en utilisant une API commune. Différents fournisseurs de services de nommage et d'annuaire peuvent être intégrés de manière transparente derrière cette API commune. Cela permet applications basées sur la technologie Java de de tirer parti des informations contenues dans variété de noms existants et de d'annuaire existants, tels que LDAP, NDS, DNS et NIS(YP), et de permettre aux applications les applications de coexister avec logiciels et systèmes existants.

En utilisant JNDI comme outil, vous pouvez construire de nouvelles applications puissantes et portables qui non seulement tirent profit du modèle de Java, mais sont également bien intégrées à l'environnement dans lequel elles sont déployées.

Référence

11voto

Sabin Chirila Points 81

Qu'est-ce que JNDI ?

JNDI est l'abréviation de Java Naming and Directory Interface. Elle est fournie en standard avec J2EE.

Quelle est son utilisation de base ?

Avec cette API, vous pouvez accéder à de nombreux types de données, comme des objets, des dispositifs, des fichiers de services de nommage et de répertoire, par exemple, elle est utilisée par EJB pour trouver des objets distants. JNDI est conçu pour fournir une interface commune pour accéder aux services existants comme DNS, NDS, LDAP, CORBA et RMI.

Quand est-il utilisé ?

Vous pouvez utiliser le JNDI pour effectuer des opérations de nommage, notamment des opérations de lecture et des opérations de mise à jour de l'espace de nom. Les opérations suivantes sont décrites aquí .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X