我打算创建一个实时计数器。所以一个用户可以增加特定键的计数器值。而另一个通过 ajax 请求(在循环中或使用某种长轮询方法)获取更新的计数值。我将使用一个弹簧控制器,它将注入服务类我可以做如下的事情,还是有更好的方法:
@Service
public MyService{
//instance variable in spring injected service class, not sure if this correct
static final Map<String, Integer> myMap;
public void add(String key){
Integer count = myMap.get(key);
count++;
myMap.put(key, count);
}
//accessed via ajax loop (and controller), if value changes update display
public Integer getCount(String key){
return myMap.get(key)
}
@PostConstruct
public load(){
myMap = new HashMap<String, Integer>(10){{//initialize}};
}
编辑有几个答案,但不清楚哪个是最好的:同步添加方法?在另一个类(带注释的存储库)中创建地图并注入它?还有什么?