package org.xforth.config.demo.client;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
import org.xforth.config.client.ConfigBundle;
@Component
public class BeanPropertyLocalDynamicBinder {
@Autowired
private ConfigBundle configBundle;
public static void main(String args[]){
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:configBundle-demo.xml");
BeanPropertyLocalDynamicBinder binder = (BeanPropertyLocalDynamicBinder)context.getBean("beanPropertyLocalDynamicBinder");
String oldVal = binder.configBundle.get("local.config.local.key1");
while(true){
String newVal = binder.configBundle.get("local.config.local.key1");
//watch log to find out 'start watch.. dir' then modify config.properties
if(!newVal.equals(oldVal)){
oldVal = newVal;
System.out.println("dynamic local value change:"+oldVal);
}
}
}
}