javahost:使用虛擬DNS省掉開發環境配置hosts文件

javahost:使用虛擬DNS省掉開發環境配置hosts文件

學習如何使用java修改DNS解析記錄,採用Properties文件替代hosts文件。

在不一樣運行環境訪問不一樣將數據源服務器,爲了方便切換是否使用域名替代IP?
若是使用域名的話,在開發環境就須要配置hosts文件
團隊其餘成員checkout代碼是否須要文檔告訴他怎麼配置hosts文件?
您負責的項目不少怎麼辦?爲了方便修改hots文件您是否會藉助Win Hosts Manager之類的軟件?java

討厭寫文檔嗎?想團隊其餘成員checkout代碼不用修改hosts文件便可直接運行程序嗎?
javahost(JVM虛擬DNS)幫組您解決這些煩惱,下面帶你們來了解一下如何使用javahost省掉hosts文件配置.mysql

一、配置maven依賴

在pom.xml加入
redis

<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

二、編寫vdns.properties

src/main/resources/vdns.propertiesspring

#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 不過咱們推薦獨立一個文件配置,這樣會更加清晰些sql

三、設置虛擬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便可session

四、輸出日誌

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文件就能運行程序了。maven

瞭解Leopard更多功能模塊,請訪問http://leopard.io/ide

總結

恭喜你!您已經能夠學會使用JavaHost配置虛擬DNS,不用再修改煩人的hosts文件,祝您好運。單元測試

相關文章
相關標籤/搜索