我得到: Singleton类在Springboot代码中的4-5个位置以不同步的方式写入字段,同时通过SonarQube进行扫描。现在,我想弄清楚如何才能让这个警告消失?是否对此错误有一般性修正?
以下是一个例子:
public class NewProvProcess {
@Autowired
DataExecutor dataexecutor;
String flag = "N";
public void dbFetchNewProvRecords() {
do {
try {
Thread.sleep(180000);
flag = dataexecutor.fetchNDBRunStatus();
LOGGER.info("The Flag value is {}, checking again after 3 minute ", flag);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}while(("N").equals(flag));
}
}

发布于 2020-12-03 16:30:14
private.
在最简单的情况下,这样的事情可能会做到:
public class NewProvProcess {
@Autowired
DataExecutor dataexecutor;
private String flag = "N";
public void dbFetchNewProvRecords() {
do {
try {
Thread.sleep(180000);
synchronized(this) {
flag = dataexecutor.fetchNDBRunStatus();
LOGGER.info("The Flag value is {}, checking again after 3 minute ", flag);
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}while(("N").equals(flag));
}
synchronized String getFlag() {
return this.flag;
}
}https://stackoverflow.com/questions/65129399
复制相似问题