我有两层来自Controller-> MVC Spring 3设计的服务。我也有一些私人服务。 现在,我的问题是,由于默认范围定义为Singleton,它们是否是线程安全的?
以下代码如下:
StatController.java:
// statics
@Controller
@RequestMapping("/stat")
public class StatController {
@Autowired
private StatManager statManager;
...
}
StatManager.java
public interface StatManager {
public File statExec(StatCriteria criteria) throws IOException;
}
StatManagerImpl.java
@Service("statManager")
public class StatManagerImpl implements StatManager {
private Hashtable<Long, Result> hashtableResult = null;
private void initialization() {
this.hashtableResult = null;
// ....
}
@Override
public File statExec(StatCriteria criteria) throws IOException {
this.initialization();
// HERE: processing request. need update to & get values from this.hashtableResult
this.hashtableResult = null;
}
}
如果2个会话S1和S2在同一时刻请求统计数据=&gt; StatManagerImpl.hashtableResult的值是否可以?
非常感谢 最好的祝福 DSEA
答案 0 :(得分:0)
不行。 Spring bean默认是Singleton。你不应该把状态存储在Spring benas中。他们应该是无国籍的。