web-dev-qa-db-fra.com

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

  • Qu'est-ce que JNDI?

  • Quelle est son utilisation de base?

  • Quand est-il utilisé?

246
LetsSyncUp

Qu'est-ce que JNDI?

Il représente interface de nommage et de répertoire Java .

Quelle est son utilisation de base?

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

Quand est-il utilisé?

Le cas d'utilisation le plus courant consiste à configurer un pool de connexions 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 ils ont besoin à l'aide du 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 dans laquelle les applications quittent les environnements 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 ne doivent pas changer lors de la migration entre les environnements.
  2. Vous pouvez réduire le nombre de personnes ayant besoin de 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.
217
duffymo

Qu'est-ce que JNDI?

L'interface de dénomination et de répertoire JavaTM (JNDI) est une interface de programmation d'application (API) qui fournit une fonctionnalité de dénomination et de répertoire aux applications écrites à l'aide du langage Java.TM langage de programmation. Il est défini comme étant indépendant de toute implémentation spécifique du service d'annuaire. Ainsi, une variété de répertoires (nouveaux, émergents et déjà déployés) peuvent être consultés de manière commune.

Quelle est son utilisation de base?

La plupart de ces éléments sont abordés dans la réponse ci-dessus, mais je souhaiterais proposer une architecture ici, afin que ce qui précède ait plus de sens.

enter image description here

Pour utiliser le JNDI, vous devez avoir les classes JNDI et un ou plusieurs fournisseurs de services. Le SDK Java 2, v1.3 inclut trois fournisseurs de services pour les services de dénomination/répertoire suivants:

  1. Protocole LDAP (Lightweight Directory Access Protocol)
  2. Service de noms COS (Common Object Request Services) de l'architecture CORBA (Common Object Request Broker)
  3. Registre RMI (Java Remote Method Invocation)

Donc, fondamentalement, vous créez des objets et les enregistrez sur les services d’annuaire sur lesquels vous pouvez ultérieurement rechercher et exécuter des opérations.

94
Aniket Thakur

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 un accès, qu’il soit interne ou externe. i.e (comp/env dans ce cas signifie où composant/environnement, il y a beaucoup d'autres syntaxes):

jndiContext.lookup("Java:comp/env/persistence/customerDB");
27
mel3kings

Présentation de JNDI

JNDI est une API spécifiée dans la technologie Java qui fournit une fonctionnalité de dénomination et de répertoire aux applications écrites dans le langage de programmation Java. Il est spécialement conçu pour la plate-forme Java à l'aide du modèle objet de Java. Avec JNDI, les applications basées sur la technologie Java peuvent stocker et récupérer des objets Java nommés, quel que soit leur type. En outre, JNDI fournit des méthodes permettant d'effectuer des opérations d'annuaire standard, telles que l'association d'attributs à des objets et la recherche d'objets à l'aide de leurs attributs.

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

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

référence

Qu'est-ce que JNDI?

JNDI signifie Java Interface de dénomination et de répertoire. Il est livré en standard avec J2EE.

Quelle est son utilisation de base?

Avec cette API, vous pouvez accéder à de nombreux types de données, tels que des objets, des périphériques, des fichiers de noms et des services de répertoire, par exemple. il est utilisé par EJB pour rechercher des objets distants. JNDI est conçu pour fournir une interface commune permettant d'accéder aux services existants tels que DNS, NDS, LDAP, CORBA et RMI.

Quand est-il utilisé?

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

8
Sabin Chirila

Un service de dénomination associe des noms à des objets et recherche des objets en fonction de leurs noms (le registre RMI est un bon exemple de service de dénomination).

Sans JNDI, les informations d'emplacement ou d'accès des ressources distantes devraient être codées en dur dans les applications ou mises à disposition dans une configuration. Maintenir cette information est assez fastidieux et sujet aux erreurs.

7
Chetan Laddha

Je suis juste curieux de savoir pourquoi les documents officiels sont tellement ignorés, ce qui explique les détails déjà méticuleusement.

Mais si vous souhaitez comprendre les cas, veuillez vous référer à la réponse de duffymo .

Interface de dénomination et de répertoire JavaTM (JNDI) est une interface de programmation d'application (API) qui fournit une fonctionnalité de dénomination et de répertoire aux applications écrites à l'aide du langage Java.TM langage de programmation. Il est défini comme indépendant de toute implémentation spécifique du service d'annuaire. Ainsi, une variété de répertoires - nouveaux, émergents et déjà déployés - peuvent être consultés de manière commune.

Et son architecture

enter image description here

Et normalement comment vous l'utilisez .

3
Hearen