This repository has been archived by the owner on Nov 24, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 313
客户端高级配置
hengyunabc edited this page May 1, 2016
·
2 revisions
如果是@Service
, @Component
这样的bean,可以直接在一个函数上用@OneKeyListener
或者@AllKeyListener
来获取到最新的配置值。例如:
@Service
public class ListenerExampleService {
@OneKeyListener(key = "testOneKeyListener")
public void testOneKeyListener(ConfigEvent event) {
System.err.println("ListenerExampleService, testOneKeyListener, event :" + event);
}
@AllKeyListener
public void testAllKeyListener(ConfigEvent event) {
System.err.println("ListenerExampleService, testAllKeyListener, event :" + event);
}
}
在ConfigEvent
里,可以获取到一个key是新增/修改/删除的信息。用户可以自行处理。
具体的例子代码在xdiamond-client-example
里。
bSyncToSystemProperties
可以把配置同步到System Properties里,默认值是false。这样可以实现在*.properties文件里引用xdiamond里的配置。比如在一个test.properties文件里:
testKey=xxx${keyFromXdiamond}yyy
<bean id="xDiamondConfig"
class="io.github.xdiamond.client.spring.XDiamondConfigFactoryBean">
...
<property name="bSyncToSystemProperties" value="true"></property>
</bean>
注意,如果是一个Tomcat里跑多个war,小心打开这个配置。参考: http://wiki.apache.org/tomcat/HowTo#Can_I_set_Java_system_properties_differently_for_each_webapp.3F
默认是会不断尝试重连服务器。在打印日志时已经做了优化,通常不需要改变设置。
<bean id="xDiamondConfig"
class="io.github.xdiamond.client.spring.XDiamondConfigFactoryBean">
...
<!-- 以指数退避方式计算重连时间间隔 -->
<property name="bBackOffRetryInterval" value="true"></property>
<property name="retryIntervalSeconds" value="5"></property>
<property name="maxRetryIntervalSeconds" value="120"></property>
<!-- 默认会无限重试 -->
<property name="maxRetryTimes" value=""></property>
</bean>