package com.cwa.util.dynamic.property; /** * 动态属性从某个地方(比如磁盘文件、URL、数据库等)加载一个字符串类型的值。 * 这个值会被缓存起来,并且会定期刷新。 */ public abstract class DynamicProperty { private long refreshRate; // 刷新周期 private long lastRefresh; // 上次刷新时间 private String value; public DynamicProperty() { } public long getRefreshRate() { return refreshRate; } public void setRefreshRate(long refreshRate) { this.refreshRate = refreshRate; } public long getLastRefresh() { return lastRefresh; } public void setLastRefresh(long lastRefresh) { this.lastRefresh = lastRefresh; } public String getValue() { return value; } /** * 刷新属性。 * @throws Exception */ public void refresh() throws Exception { value = reload(); } /** * 加载属性。 * @return * @throws Exception */ public abstract String reload() throws Exception; }