1

可能是一个愚蠢的问题,但我正在学习 Play framework 1.2.5。我注意到控制器操作都是静态方法,我假设每个请求都将在单独的线程中处理。如果是这样,Play 框架如何确保这些静态控制器方法是线程安全的?我认为,只要我们不在控制器方法之间共享任何东西,那么我们就很好(?),如果我错了,请纠正我。

提前致谢。

4

1 回答 1

2

是的,我们很好。如您所知,HTTP 是无状态的,因此请求之间不会共享任何内容。PlayThreadLocal在处理请求时使用 s。每个请求都有自己的线程,因此您可以完全控制当前请求 - 响应生命周期。

如果你想在控制器之间共享数据,你有sessionobject 但是它很小并且只接受Strings. 对于其他数据类型或共享的不同实现,您应该使用一个Cache实现。有关详细信息,请参阅会话缓存文档。

祝你好运!

于 2013-04-20T07:35:37.063 回答