今天在学习 eureka
的基于DNS加载 可用空间/区域 关系时,用到了JNDI加载DNS。一开始我一直没想明白,后来通过查阅资料,发现这是Java的JNDI提供了DNS查阅功能,让我们直接看看代码演示吧:
@Test
public 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());
}