今天在学习 eureka 的基于DNS加载 可用空间/区域 关系时,用到了JNDI加载DNS。一开始我一直没想明白,后来通过查阅资料,发现这是Java的JNDI提供了DNS查阅功能,让我们直接看看代码演示吧:
@Testpublic void testJndiDns() throws NamingException {// 要查询的域名String queryUrl = "txt.region1.codeleven.cn";Hashtable<String,String> env = new Hashtable<String,String>();// 指定JNDI的实现env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");// 创建JNDI环境InitialDirContext context = new InitialDirContext(env);// 指定要查询的属性String[] queryAttribute = {"TXT"};// 查询Attributes attributes = context.getAttributes(queryUrl, queryAttribute);// 获取TXT属性Attribute txtAttribute = attributes.get("TXT");// 输出TXT的查询结果System.out.println(txtAttribute.get().toString());}
