Как уже упоминалось, JNDI по большей части используется для поиска местоположения службы, но в основном для ресурсов, подобных БД.
Больше всего раздражает то, что LDAP-интерфейс Java также является JNDI-API.При работе с LDAP абстракции очень и очень запутаны.Недостатком JNDI также является то, что он иногда является единственной точкой отказа.
Большую часть того, что делает JNDI, можно легко выполнить, используя псевдонимы имени хоста.То есть создайте псевдоним, который указывает MYRESOURCE на 127.0.0.1
в вашем /etc/hosts
(или там, где он есть для вашей env).Затем в конфигурации приложения используйте MYRESOURCE в качестве имени хоста (например, в URL-адресе jdbc).
Затем, когда вы переводите свое приложение в производство, просто измените файл /etc/hosts
производства, указав MYRESOURCE на производственный ресурс /сервис (как сервер базы данных prod).
Вышеприведенный способ представляет собой более переносимый каталог имен меньшего размера, который будет работать на других языках (ruby, python).Он также будет работать с вещами, которые обычно не выполняются с JNDI, такими как службы REST.Единственное, что раздражает, это то, что вам придется обновлять файлы хостов ваших серверов, но это можно автоматизировать с помощью сценариев SSH.