Что такое каталог имен? - PullRequest
2 голосов
/ 28 ноября 2011

Я читаю о JNDI, и если я понял то, что читал до сих пор, то JNDI - это API для получения ресурсов из каталогов имен, таких как LDAP, DNS и т. Д.

Я не слышал об именахкаталоги раньше, и я попытался Google это для объяснений.Я читал, что это каталог, в котором хранятся имена и объекты (что-то вроде HashMap в Java?).Однако я не понимаю, что такое директория имен ..., и при этом я не понимаю, как JNDI работает полностью.

Я был бы более чем рад, если бы кто-нибудь мог объяснить и / или дать ссылки на сайты для дальнейшего чтения и помочь мне понять.

Спасибо.

(PS, извинитеза плохую пометку поста, но я не знаю, где ее разместить)

Ответы [ 3 ]

1 голос
/ 29 ноября 2011

В основном служба каталогов - это метод хранения больших объемов (часто разнородных) структурированных данных, их иерархической организации (в том числе сложных схем авторизации) и предоставления клиентам доступа к каждому элементу данных через уникальное имя.

Это в основном похоже на файловую систему, но оптимизировано для очень глубоких иерархий очень маленьких файлов, к которым одновременно обращаются многие клиенты по сети.

В контексте Java EE JNDI в основном используется просто как уровень косвенности, чтобы избежать жестко кодируемых зависимостей, таких как EJB и источники данных. Вместо этого их ищут по имени, что позволяет их настраивать во время выполнения. Это служит той же цели, что и контейнер внедрения зависимостей, и, на самом деле, внедрение зависимостей Java EE внутренне основано на JNDI, я считаю.

Но это действительно немного исторического артефакта, представленного в первых выпусках Java EE, и часть того, что дало тем плохую репутацию, потому что его было неудобно использовать. Более чистые и простые формы DI появились позже в Spring и с тех пор были приняты в Java EE.

1 голос
/ 28 ноября 2011

Вот некоторые документы и руководства от Oracle:

JavaWorld есть интересная статья на эту тему

0 голосов
/ 10 декабря 2011

Когда известно, что службой каталогов является LDAP, программисты должны избегать использования JNDI. Даже если каталог неизвестен или может измениться, JNDI - плохой выбор. Вместо этого используйте UnboundID LDAP SDK . См. Также «LDAP: Практика программирования» .

...