`

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文件,祝您好运。
2
0
分享到:
评论
4 楼 zhangthe9 2015-02-13  
非常有用!
3 楼 badqiu 2015-02-12  
  好东西.
2 楼 tanhaichao 2015-02-12  
wsppkdc 写道
强大的JavaHost,非用不可了!


JavaHost已经发布正式版到maven中央仓库
     <dependency>  
        <groupId>io.leopard</groupId>  
        <artifactId>javahost</artifactId>  
        <version>0.1</version>  
    </dependency>  
1 楼 wsppkdc 2015-02-12  
强大的JavaHost,非用不可了!

相关推荐

    1. 在Hosts文件增加DNS配置,如下:

    1. 在Hosts文件增加DNS配置,如下: 增加 : 10.129.72.17 wangxinguo 10.129...... chenxiang 10.129...... 为自己的IP地址,chenxiang为自己的名称,这个 2. 修改Web.xml文件的serverName的值&lt;param-value&gt;...

    Host文件转换为Charles可识别的DnsSpoofing Xml配置文件

    Host文件转换为Charles可识别的DnsSpoofing Xml配置文件 charles本身带有DNS Spoofing Settings的功能,在Tools菜单里,使用这个,就不需要在搭配其他Host修改工具使用了,我们项目中,开发时需要频繁改host,这个...

    如何配置dns系统虚拟域名的配置和设置方法.rar

    在很多情况下,我们需要配置DNS系统来管理虚拟域名,这通常涉及到网络服务提供商、服务器托管环境以及多个域名的管理。本篇文章将详细解释如何进行DNS系统虚拟域名的配置和设置。 一、理解DNS系统基本概念 1. 域名...

    SwitchHosts-本地host切换工具-mac版安装包

    2. **多配置管理**:用户可以创建多个Hosts配置文件,每个文件代表不同的环境,如开发环境、测试环境、生产环境等。在这些配置间切换只需一键操作。 3. **实时生效**:SwitchHosts在切换Hosts配置时,会立即更新...

    dns配置手册

    ### DNS配置手册:Linux环境下DNS配置详解 #### 一、DNS配置概述 DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。在...

    Host Go 免Root权限的HOSTS文件及DNS修改编辑器

    全网独家榜首免Root权限的HOSTS文件及DNS修改编辑器。 也许你正在搜索一款app满足以下功能: 无限制访问一些因为DNS污染或者其他原因而不能正常访问的网站, 家长控制孩子在因特网浏览时避免一些恶意或者不干净的...

    dns 的配置文件解析

    在上面的配置文件中,controls 语句定义了 DNS 服务器的控制接口,监听 127.0.0.1 端口 953,允许来自 127.0.0.1 的连接,并使用名为 "rndc-key" 的密钥进行身份验证。 logging 语句 logging 语句用于定义 DNS ...

    Linux 修改 etc/hosts文件详细介绍

    在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决。通过可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问...

    计算机网络之DNS 服务器的配置

    简单的讲,计算机的网络软件在使用缺省 DNS 服务器之前,首先查看本地 HOSTS 文件来指导定位,如果在 HOSTS 文件中存在一个匹配,客户端软件就会直接和远端的主机通信,这样一来就极大地缩短了通过 DNS 发现 IP 地址...

    happy-dns-java-0.1.4-API文档-中文版.zip

    赠送jar包:happy-dns-java-0.1.4.jar; 赠送原API文档:happy-dns-java-0.1.4-javadoc.jar; 赠送源代码:happy-dns-java-0.1.4-sources.jar; 包含翻译后的API文档:happy-dns-java-0.1.4-javadoc-API文档-中文...

    hosts自动升级 增强版hosts文件,增加上网安全,屏蔽垃圾网站

    "使用说明.txt"文件提供了操作指南,解释如何安装和配置hosts自动升级系统,以及如何使用提供的工具进行手动更新。通常,用户需要按照说明运行升级脚本,并将新下载的hosts文件替换或合并到当前的hosts文件中。 **...

    如何配置dns系统虚拟域名的配置和设置方法(PDF)

    虚拟域名配置是在DNS服务器上设置多个不同域名指向同一IP地址的过程,这对于拥有多个网站但只有一个服务器的情况非常有用。以下是如何配置DNS系统虚拟域名的详细步骤和相关知识点: 1. **理解DNS基础**: - DNS由...

    DNS配置文件named.conf详解

    为了更好地理解DNS服务器配置文件的使用,这里提供一个具体的配置文件示例。假设有一个虚构的域`tsinghua.com`,下面展示如何配置其主服务器的`named.conf`文件: ```conf // generated by named-bootconf.pl ...

    DNS服务器的配置实验报告.doc

    三、实验环境 1、开启一台安装有linux操作系统的虚拟机 2、dns的配置按照下面的拓扑图进行配置 四、实验步骤 1、查看dns是否安装 2、查看dns服务服务状态 3、为dns服务器设置固定IP地址,并验证网络是否连通,操作...

    如何配置dns系统虚拟域名的配置和设置方法

    - `如何配置dns系统虚拟域名的配置和设置方法.pdf`:这应该是一个详细的PDF指南,详细解释了整个配置过程。 - `cnzzz.com.txt`:可能是域名的注册信息或者DNS记录的文本备份。 以上就是配置DNS系统以支持虚拟域名...

    阿里巴巴nacos压缩包本地应用需要在c盘host文件配置127.0.0.1 nacos_server

    本文将详细讲解如何配置C盘的Hosts文件以使Nacos正常运行,并探讨Nacos在云原生环境下的作用以及与C语言、后端开发语言的关系。 首先,让我们了解Hosts文件的作用。在Windows系统中,Hosts文件位于C:\Windows\...

    领克车机DNS服务器配置文件.7z

    标题 "领克车机DNS服务器配置文件.7z" 提示我们这可能是一个与领克汽车内置信息系统(车机)相关的文件,特别是涉及到DNS(Domain Name System)服务器的配置。DNS是互联网的一项基础服务,它负责将人类可读的域名...

    Linux下DNS配置文件祥解

    ### Linux下DNS配置文件详析 DNS(Domain Name System)是互联网中不可或缺的服务之一,它负责将人类可读的域名转换成计算机可识别的IP地址。在Linux系统中,配置DNS服务器通常涉及到BIND(Berkeley Internet Name ...

    关于linux服务器hosts文件配置详解

    在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。 ...

    iFix中Hosts文件的作用.rar

    Hosts文件可以帮助开发者快速地在本地机器上创建虚拟的网络环境,无需改变网络配置,便于进行功能验证和性能测试。 至于提供的文件"2007ZDH2007LWP000000470.pdf",虽然名字没有直接表明与iFix或Hosts文件相关,但...

Global site tag (gtag.js) - Google Analytics