HomeĐời SốngJndi là gì

Jndi là gì

02:26, 01/04/2021

JNDI là một API được hướng đẫn trong công nghệ Java, cung ứng tác dụng viết tên với thư mục cho các vận dụng được viết bởi ngôn ngữ lập trình Java. Nó được thiết kế theo phong cách đặc biệt quan trọng mang đến căn cơ Java bằng quy mô đối tượng người dùng của Java. Sử dụng JNDI, những ứng dụng dựa trên công nghệ Java hoàn toàn có thể lưu trữ và tróc nã xuất những đối tượng người sử dụng Java mang tên thuộc ngẫu nhiên các loại nào. Trong khi, JNDI cung cấp các cách thức nhằm tiến hành các chuyển động tlỗi mục tiêu chuẩn chỉnh, chẳng hạn như liên kết những trực thuộc tính với những đối tượng người tiêu dùng cùng search kiếm những đối tượng người tiêu dùng bởi các ở trong tính của chúng.

Bạn đang xem: Jndi là gì

JNDI cũng khá được khái niệm tự do với ngẫu nhiên Việc thực hiện dịch vụ đánh tên hoặc tlỗi mục cụ thể nào. Nó có thể chấp nhận được các ứng dụng truy cập các hình thức dịch vụ thư mục, đánh tên với tlỗi mục khác biệt, rất có thể sử dụng API tầm thường. Các nhà cung ứng dịch vụ khắc tên với tlỗi mục khác nhau rất có thể được gặm lập tức mạch ẩn dưới API tầm thường này. Điều này có thể chấp nhận được các vận dụng dựa trên technology Java tận dụng thông báo trong vô số nhiều hình thức dịch vụ viết tên với tlỗi mục hiện tại bao gồm, chẳng hạn như LDAPhường, NDS, DNS với NIS (YP), cũng tương tự có thể chấp nhận được các vận dụng cùng trường thọ cùng với những khối hệ thống và ứng dụng cũ.

Sử dụng JNDI có tác dụng luật, chúng ta cũng có thể chế tạo những vận dụng di động cầm tay và trẻ trung và tràn trề sức khỏe new, không chỉ là tận dụng quy mô đối tượng người tiêu dùng của Java Nhiều hơn được tích vừa lòng xuất sắc cùng với môi trường mà lại chúng được thực hiện.

Kiến trúc JNDI

Kiến trúc JNDI bao gồm 1 API cùng một SPI (Serivce provider interface). Các ứng dụng Java áp dụng JNDI API nhằm sử dụng tính năng naming với directory. Lưu ý JNDI chỉ là một interface quy định những hàm được thực hiện bọn họ đề xuất một JDNI provider xúc tiến các method được nó quan niệm. SPI được cho phép chúng ta linc hoạt sử dụng những JNDI prodiver như LDAPhường, DNS, NIS etc.

*

Chúng ta nuốm một số trong những JNDI provider phổ biến:

Lightweight Directory Access Protocol (LDAP)Comtháng Object Request Broker Architecture (CORBA) Comtháng Object Services (COS) name serviceJava Remote Method Invocation (RMI) RegistryDomain Name Service (DNS)

Trường thích hợp áp dụng JNDI phổ biến

Trường vừa lòng sử dụng phổ biến độc nhất là cấu hình thiết lập nhóm liên kết cửa hàng tài liệu trên máy chủ ứng dụng Java EE. Bất kỳ vận dụng nào được triển khai trên máy chủ đó đều rất có thể gồm quyền truy cập vào các kết nối họ buộc phải bằng phương pháp áp dụng tên JNDI Java:comp/env/FooBarPool mà lại không cần phải biết cụ thể về liên kết.

Xem thêm: Giá Vé Công Viên Nước Royal City 2016, Updating 2020, Giá Vé Công Viên Nước Royal City

Điều này còn có một trong những lợi thế:

Nếu chúng ta gồm trình tự thực hiện trong số đó các áp dụng dịch rời tự môi trường devl->int->test->prod, bạn cũng có thể thực hiện thuộc thương hiệu JNDI trong mỗi môi trường thiên nhiên với ẩn các đại lý tài liệu thực tế đang rất được thực hiện. Các áp dụng chưa hẳn biến hóa Lúc bọn chúng dịch rời thân những môi trường.quý khách hoàn toàn có thể sút tgọi số lượng fan cần phải biết công bố đăng nhập nhằm truy cập cửa hàng dữ liệu cấp dưỡng. Chỉ sever áp dụng Java EE cần biết nếu như khách hàng áp dụng JNDI.

Name Interface

Name objectName = new CompositeName("java:comp/env/jdbc");Name Interface hỗ trợ chính sách quản lý thương hiệu với cú pháp cho JNDI. Thành phần đầu tiên vào chuỗi đứng trước vệt / thay mặt đại diện mang đến global context, theo vùng phía đằng sau thay mặt đại diện cho những sub-content.

import javax.naming.CompositeName;import javax.naming.InvalidNameException;import javax.naming.Name;import java.util.Enumeration;class Main public static void main(String[> args) throws InvalidNameException Name objectName = new CompositeName("java:comp/env/jdbc"); Enumeration elements = objectName.getAll(); while(elements.hasMoreElements()) System.out.println(elements.nextElement()); Output:

java:compenvjdbc

Context Interface

Context interface không những trực thuộc tính của naming cùng directory service. Dưới đấy là ví dụ context vào Spring.

SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder(); builder.activate();SimpleNamingContextBuildervào Spring giúp họ sản xuất một JNDI provider và tiếp nối khởi chạy vớiNamingManager.

Xem thêm: Xem Clip Đánh Ghen Ở Big C Hà Đông, Đánh Ghen Ở Big C Hà Đông

JndiTemplate jndiTemplate = new JndiTemplate();ctx = (InitialContext) jndiTemplate.getContext();

Binding cùng Lookup

Sau Khi khởi chế tạo thành công SimpleNamingContextBuilder, bạn cũng có thể sử dụng nó nhằm lưu trữ JDBC Datasource trải qua bind() method.

ds = new DriverManagerDataSource("jdbc:h2:mem:mydb");ctx.bind("java:comp/env/jdbc/datasource", ds);Sau Lúc đang binding Datasource thành công, chúng ta cũng có thể tróc nã xuất lại với lookup

DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/datasource");Nguồn tham mê khảo


Chuyên mục: Đời Sống