在不一樣運行環境訪問不一樣將數據源服務器,爲了方便切換是否使用域名替代IP?
若是使用域名的話,在開發環境就須要配置hosts文件
團隊其餘成員checkout代碼是否須要文檔告訴他怎麼配置hosts文件?
您負責的項目不少怎麼辦?爲了方便修改hots文件您是否會藉助Win Hosts Manager之類的軟件?java
討厭寫文檔嗎?想團隊其餘成員checkout代碼不用修改hosts文件便可直接運行程序嗎?
javahost(JVM虛擬DNS)幫組您解決這些煩惱,下面帶你們來了解一下如何使用javahost省掉hosts文件配置.mysql
在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包.
src/main/resources/vdns.properties
spring
#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
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文件,祝您好運。單元測試