JavaHost:使用虚拟DNS省掉开发环境配置hosts文件

[size=x-large]JavaHost:使用虚拟DNS省掉开发环境配置hosts文件[/size]
[size=large]学习如何使用java修改DNS解析记录,采用Properties文件替代hosts文件。[/size]
在不同运行环境访问不同将数据源服务器,为了方便切换是否使用域名替代IP?

如果使用域名的话,在开发环境就需要配置hosts文件

团队其他成员checkout代码是否需要文档告诉他怎么配置hosts文件?

您负责的项目很多怎么办?为了方便修改hots文件您是否会借助Win Hosts Manager之类的软件?
讨厌写文档吗?想团队其他成员checkout代码不用修改hosts文件即可直接运行程序吗?

javahost(JVM虚拟DNS)帮组您解决这些烦恼,下面带大家来了解一下如何使用javahost省掉hosts文件配置.
[size=x-large]1、配置maven依赖[/size]
在pom.xml加入

<dependencies>
[...]
<dependency>
<groupId>io.leopard</groupId>
<artifactId>javahost</artifactId>
<version>0.0.5-SNAPSHOT</version>
</dependency>
[...]
</dependencies>
<repositories>
<repository>
<id>leopard-snapshots</id>
<name>Leopard Snapshots</name>
<url>http://leopard.io/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>

如果您是非maven用户,可以通过以下链接下载jar包.
[url=http://leopard.io/download/snapshots/io/leopard/javahost-0.0.5-SNAPSHOT.jar]io.leopard:javahost:0.0.5-SNAPSHOT[/url]

[size=x-large]2、编写vdns.properties[/size]
src/main/resources/vdns.properties
#MySQL user database
user.mysql.guides.leopard.io=127.0.0.1

#Redis user database
user.redis.guides.leopard.io=127.0.0.2

#Redis session database
session.redis.guides.leopard.io=127.0.0.3


[i]
你可以将这些域名解析配置和其他占位符放在同一个文件,value为合法的IP才会设置虚拟DNS
不过我们推荐独立一个文件配置,这样会更加清晰些
[/i][size=x-large]3、设置虚拟DNS[/size]
src/test/java/io/leopard/guides/JettyTest.java
package io.leopard.guides;

import io.leopard.javahost.JavaHost;
import io.leopard.jetty.JettyServer;

import java.io.IOException;
import java.net.InetAddress;
import java.util.Properties;

import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;

public class JettyTest {

private static void loadDns() throws IOException {
Resource resource = new ClassPathResource("/vdns.properties");
Properties props = PropertiesLoaderUtils.loadProperties(resource);
JavaHost.updateVirtualDns(props);
}

public static void main(String[] args) throws Exception {
loadDns();
JavaHost.printAllVirtualDns();// 打印所有虚拟DNS记录
System.out.println("IP:" + InetAddress.getByName("user.mysql.guides.leopard.io").getHostAddress());// 验证一下解析是否正确
JettyServer.start();// 启动Jetty服务器
}
}

[i]
单元测试代码使用虚拟DNS,参考JettyTest即可
[/i][size=x-large]4、输出日志[/size]
JavaHost [host=user.redis.guides.leopard.io, ip=127.0.0.2]
JavaHost [host=user.mysql.guides.leopard.io, ip=127.0.0.1]
JavaHost [host=session.redis.guides.leopard.io, ip=127.0.0.3]
IP:127.0.0.1

至此,您团队其他成员checkout代码后,已经可以不用修改hosts文件就能运行程序了。
了解Leopard更多功能模块,请访问[url=http://leopard.io/]http://leopard.io/[/url]
[size=x-large]总结[/size]
恭喜你!您已经可以学会使用JavaHost配置虚拟DNS,不用再修改烦人的hosts文件,祝您好运。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值