Quel est le but de JNDI
Comment pouvez-vous vous rendez compte de l'utilisation de JNDI avec un exemple si possible?
- Vous pouvez vérifier un blog personnel post pour les cas d'utilisation: tshikatshikaaa.blogspot.com/2013/01/...
- pour pointer vers un article qui parle liées LDAP, JCA et de la CCI.
- Découvrez ce fil
Vous devez vous connecter pour publier un commentaire.
JNDI est la Java Naming and Directory Interface. Il est utilisé pour séparer les préoccupations de l'application développeur et de l'application deployer. Lorsque vous écrivez une application qui s'appuie sur une base de données, vous ne devriez pas avoir à vous soucier du nom d'utilisateur ou le mot de passe pour la connexion à la base de données. JNDI permet au développeur de donner un nom à une base de données, et de s'appuyer sur le déploiement de la carte ce nom à une instance de la base de données.
Par exemple, si vous écrivez du code qui s'exécute dans un conteneur Java EE, vous pouvez écrire ceci pour obtenir la main de la source de données avec le nom JNDI "Base de données":
Remarque il n'y a rien ici sur le pilote de base de données, ou le nom d'utilisateur ou le mot de passe. Qui est configuré à l'intérieur du conteneur.
JNDI n'est pas limité aux bases de données (JDBC); toutes sortes de services peut être donné des noms. Pour plus de détails, vous devriez vérifier le Soleil tutoriel sur le sujet.
JNDI est un mécanisme très puissant pour organiser les informations de configuration et la découverte et l'écoute de services par l'aide de la
EventContext
. Dans JNDI vous pouvez rechercher et écouter tout objet (pas seulementDataSource
s), en supposant que votre JNDI fournisseur de services prend en charge.Bien sûr, le seul problème est le fait d'avoir un service JNDI fournisseur; la grande chose à ce sujet est qu'il est étonnamment facile à rouler. Après tout, vous pouvez encoder Java instance en
XML
à l'aide de la JavaBeansXMLEncoder
etXMLDecoder
: vous n'avez pas besoin de compter sur exécutant au sein d'un serveur d'application!Quelle est donc la différence entre ce un avoir des fichiers de configuration? Eh bien, il peut être beaucoup plus propre parce que toutes vos applications peuvent obtenir leur configuration de la même place. Si elles ont besoin de partager des informations de configuration (par exemple, la base de données d'emplacements) puis il peut être défini à la fois dans JNDI. Supposons que vous avez déplacé serveurs de base de données: vous n'avez pas besoin de vous rappeler la foule de fichiers de configuration avec l'emplacement en elle. Vous allez simplement à l'endroit: JNDI.
JNDI est une API utilisée pour accéder à l'annuaire et les services de nommage (c'est à dire le moyen par lequel les noms sont associés à des objets). L'association d'un nom à un objet s'appelle une liaison.
Un exemple de base d'un service de nommage est le DNS qui mappe les noms des machines en adresses IP.
Utilisant JNDI, les applications peuvent stocker et de récupérer nommé Java objets de tout type.
Dans le contexte de java peut être utilisé dans les fichiers de configuration où vous ne voulez pas dur-code de l'environnement de variables spécifiques.
Printemps Exemple:
Printemps contexte fichier
Tomcat fichier de contexte
JNDI permet la simplification d'une ressource construire en nom. Donc, c'est beaucoup de détails groupe en 1 pour le confort/sécurité/etc. (aka couche d'abstraction)
à réaliser:
configurer une liste de propriétés qui correspond à la champs prédéfinis dans le Contexte Jndi de l'Interface. (ces propriétés, spécifiez les paramètres de la jndi de l'exécution; mais *pas le nom de la recherche)
idéalement, une fonction spécialisée existerait à maintenir un annuaire LDAP, DNS, etc, au sein de votre organisation (donc unifié unique de cartographie ensemble de tous les services, la réduction des écarts)
Liste de JNDI les Fournisseurs de Services:
https://www.ibm.com/support/knowledgecenter/en/SSVSD8_8.4.1/com.ibm.websphere.dtx.adapjndi.doc/concepts/c_jndi_JNDI_Service_Providers_.htm