mvc:私人服务&自动装配Autowired

时间:2013-05-23 08:02:43

标签: spring-mvc

我有两层来自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

1 个答案:

答案 0 :(得分:0)

不行。 Spring bean默认是Singleton。你不应该把状态存储在Spring benas中。他们应该是无国籍的。