Java Интерфейс именования и каталогов (JNDI)
Вы не должны быть жестко запрограммированными подробностями конфигурации среды выполнения в базе кода вашего веб-приложения. Вместо этого извлеките эту информацию. Поэтому, когда пароль базы данных меняется, вам не нужно повторно компилировать веб-приложение. Например, когда ваш системный администратор изменится с Tomcat на Payara в качестве вашего веб-контейнера, вам не нужно повторно компилировать ваше веб-приложение.
Вывод этой информации в обычном порядке в корпоративные приложения. Часто эта информация о конфигурации помещается в службу каталогов , такую как LDAP .
Некоторые веб-контейнеры поставляются со встроенной службой каталогов. в. Узнайте подробнее о вашем конкретном контейнере и его функциях.
Java предоставляет API в качестве посредника между вашим кодом и всеми различными технологиями службы каталогов: Java Именование и каталог Интерфейс (JNDI) . Во время развертывания системный администратор настраивает выбранную вами службу каталогов и размещает некоторые файлы конфигурации для вашего веб-контейнера.
Код Java вашего веб-приложения использует JNDI для слепого запроса необходимой услуги или объекта. Ваше веб-приложение не знает или не заботится, является ли веб-контейнер Apache Tomcat использующим его собственная встроенная служба каталогов , или если ваш системный администратор использует отдельный сервер LDAP для хранения подробности развертывания.
Например, для подключения к базе данных ваш код Java будет использовать JNDI API для запроса объекта DataSource
из службы имен / каталогов. Этот объект содержит необходимый адрес базы данных, имя пользователя, пароль и различные параметры базы данных. Ваш код Java просто вызывает DataSource::getConnection
для любого возвращаемого объекта реализации DataSource
. Это изолирует ваш код Java от деталей конфигурации базы данных. sysadmin и DBA могут свободно перемещать или перенастраивать сервер базы данных, не прерывая работу вашего веб-приложения.