【发布时间】:2012-06-20 18:04:48
【问题描述】:
我打算创建一个实时计数器。所以一个用户可以增加特定键的计数器值。而另一个通过 ajax 请求(在循环中或使用某种长轮询方法)获取更新的计数值。我将使用一个 spring 控制器,它将注入服务类我可以执行以下操作,还是有更好的方法:
@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}};
}
编辑有几个答案,但不清楚哪个是最好的:同步添加方法?在另一个类(带注释的存储库)中创建地图并注入它?还有什么?
【问题讨论】: