Что такое JNDI? Каково его основное использование..? Когда он используется?

Что такое JNDI? Каково его основное использование? Когда он используется?

Ответ 1

Что такое JNDI?

Это означает Java Naming and Directory Interface.

Каково его основное использование?

JNDI позволяет распределенным приложениям искать сервисы абстрактным, ресурсо-независимым способом.

Когда он используется?

Наиболее распространенным вариантом использования является создание пула соединений с базой данных на сервере приложений Java EE. Любое приложение, развернутое на этом сервере, может получить доступ к необходимым им соединениям с помощью имени JNDI java:comp/env/FooBarPool, не зная подробностей о соединении.

Это имеет ряд преимуществ:

  • Если у вас есть последовательность развертывания, когда приложения перемещаются из сред devl->int->test->prod, вы можете использовать одно и то же имя JNDI в каждой среде и скрыть используемую фактическую базу данных. Приложения не должны меняться при миграции между средами.
  • Вы можете свести к минимуму количество людей, которым необходимо знать учетные данные для доступа к производственной базе данных. Только сервер приложений Java EE должен знать, используете ли вы JNDI.

Ответ 2

Что такое JNDI?

Интерфейс именования и интерфейса Java TM (JNDI) - это интерфейс прикладного программирования (API), который обеспечивает функции именования и каталогов для приложений, написанных с использованием языка программирования Java TM Он определяется как независимый от какой-либо конкретной реализации службы каталогов. Таким образом, широкий выбор каталогов (новых, новых и уже развернутых) можно получить обычным способом.

Каково его основное использование?

Большинство из них описано в приведенном выше ответе, но я хотел бы предоставить архитектуру здесь, чтобы выше было больше смысла.

enter image description here

Чтобы использовать JNDI, вы должны иметь классы JNDI и один или несколько поставщиков услуг. Java 2 SDK, v1.3 включает в себя три поставщика услуг для следующих служб имен/каталогов:

  • Легкий протокол доступа к каталогам (LDAP)
  • Служба имен общих имен объектов (CORBA) Common Object Services (COS)
  • Реестр Java Remote Method Invocation (RMI)

Таким образом, вы в основном создаете объекты и регистрируете их в службах каталогов, которые впоследствии можно выполнить и выполнить.

Ответ 3

JNDI в терминах непрофессионала - это в основном интерфейс для возможности получения экземпляров внутренних/внешних ресурсов, таких как

  javax.sql.DataSource, 
  javax.jms.Connection-Factory,
  javax.jms.QueueConnectionFactory,
  javax.jms.TopicConnectionFactory,
  javax.mail.Session, java.net.URL,
  javax.resource.cci.ConnectionFactory,

или любой другой тип, определенный адаптером ресурсов JCA. Он обеспечивает синтаксис в возможности создавать доступ независимо от того, являются ли они внутренними или внешними. i.e(comp/env в этом случае означает, что компонент/среда, есть много другого синтаксиса):

jndiContext.lookup("java:comp/env/persistence/customerDB");

Ответ 4

Обзор JNDI

JNDI - это API, указанный в Java технологии, которая обеспечивает именование и функции каталога для приложения, написанные на Java язык программирования. Он разработан особенно для платформы Java, используя Объектная модель Java. Используя JNDI, приложения на основе технологии Java может хранить и извлекать именованные Java объектов любого типа. Кроме того, JNDI предоставляет методы для выполнения стандартные операции с каталогом, такие как связывание атрибутов с объектами и поиск объектов, используя их атрибуты.

JNDI также определяется независимо от любое конкретное имя или каталог услуг. Это позволяет приложения для доступа к другим, возможно, несколько, именования и службы каталогов с использованием общего API. Различные службы именования и каталогов провайдеры могут быть легко подключены за этим общим API. Это позволяет Приложения на основе Java-технологии для использовать информацию в разнообразие существующих имен и службы каталогов, такие как LDAP, NDS, DNS и NIS (YP), а также приложения, чтобы сосуществовать с устаревшее программное обеспечение и системы.

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

Ссылка

Ответ 5

Что такое JNDI?

JNDI означает Java Naming and Directory Interface. Он поставляется с J2EE.

Каково его основное использование?

С помощью этого API вы можете получить доступ ко многим типам данных, например, к объектам, устройствам, файлам имен и служб каталогов, например. он используется EJB для поиска удаленных объектов. JNDI разработан для обеспечения общего интерфейса для доступа к существующим службам, таким как DNS, NDS, LDAP, CORBA и RMI.

Когда он используется?

Вы можете использовать JNDI для выполнения операций именования, включая операции чтения и операции для обновления пространства имен. Ниже описаны операции .

Ответ 6

Служба именования связывает имена с объектами и находит объекты на основе их имен. (Реестр RMI - хороший пример службы именования.) JNDI предоставляет общий интерфейс для многих существующих служб именования, таких как LDAP, DNS.

Без JNDI информация о местоположении или доступе к удаленным ресурсам должна быть жестко закодирована в приложениях или доступна в конфигурации. Поддержание этой информации довольно утомительно и подвержено ошибкам.

Ответ 7

Мне просто любопытно, почему официальные документы так игнорируются, что детально прорабатывают детали.

Но если вы хотите понять случаи, пожалуйста, обратитесь к ответу duffymo.

Java Naming and Directory InterfaceTM (JNDI) - это интерфейс прикладного программирования (API), который обеспечивает функциональность имен и каталогов для приложений, написанных с использованием языка программирования Java TM. Он определяется как независимый от какой-либо конкретной реализации службы каталогов. Таким образом, различные каталоги - новые, новые и уже развернутые - могут быть доступны обычным способом.

И его архитектура

enter image description here

И обычно, как вы используете это.