今天才发现当初一个变量引发一个生产问题。我们使用变量时都常常把公共的变量放到全局中,供其它方法使用。显然是个很常见的抽象,但有种特殊场景,就算是多个地方使用也不能抽象到全局变量。如下这种情况
public class ProductController {
String flag=SCMClient.getValue("swtich.conf");
public void getProduct(){
if("v1".equals(flag)){
//todo
}else if("v2".equals(flag)){
//todo
}
}
}
因flag是读SCM中的一个配置文件,通过SCM客户端进行监听 swtich.conf 文件是否变化,属于实时获取。当使用在全局变量中,全局变量中的方法不会根据方法调用,实时获取文件内容,此问题会造成无法取到最新数据。从而一个变量引发踩坑~~