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

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

学习如何使用java修改DNS解析记录,采用Properties文件替代hosts文件。

在不同运行环境访问不同将数据源服务器,为了方便切换是否使用域名替代IP?
如果使用域名的话,在开发环境就需要配置hosts文件
团队其他成员checkout代码是否需要文档告诉他怎么配置hosts文件?
您负责的项目很多怎么办?为了方便修改hots文件您是否会借助Win Hosts Manager之类的软件?

讨厌写文档吗?想团队其他成员checkout代码不用修改hosts文件即可直接运行程序吗?
javahost(JVM虚拟DNS)帮组您解决这些烦恼,下面带大家来了解一下如何使用javahost省掉hosts文件配置.

1、配置maven依赖

在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包.
io.leopard:javahost:0.0.5-SNAPSHOT

2、编写vdns.properties

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 



你可以将这些域名解析配置和其他占位符放在同一个文件,value为合法的IP才会设置虚拟DNS 不过我们推荐独立一个文件配置,这样会更加清晰些

3、设置虚拟DNS

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服务器

	}

}

单元测试代码使用虚拟DNS,参考JettyTest即可

4、输出日志

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更多功能模块,请访问http://leopard.io/

总结

恭喜你!您已经可以学会使用JavaHost配置虚拟DNS,不用再修改烦人的hosts文件,祝您好运。

你可能感兴趣的:(hosts)