What is JNDI ?
It stands for Java Naming and Directory Interface.
What is its basic use?
JNDI allows distributed applications to look up services in an abstract, resource-independent way.
When it is used?
The most common use case is to set up a database connection pool on a Java EE application server. Any application that’s deployed on that server can gain access to the connections they need using the JNDI name
java:comp/env/FooBarPool without having to know the details about the connection.
This has several advantages:
- If you have a deployment sequence where apps move from
devl->int->test->prodenvironments, you can use the same JNDI name in each environment and hide the actual database being used. Applications don’t have to change as they migrate between environments.
- You can minimize the number of folks who need to know the credentials for accessing a production database. Only the Java EE app server needs to know if you use JNDI.