标签: playframework playframework-1.x
可能是一个愚蠢的问题,但我是noob学习Play框架1.2.5。 我注意到控制器动作都是静态方法,我假设每个请求都将在一个单独的线程中处理。如果是这种情况,Play框架如何确保这些静态控制器方法是线程安全的?我想,只要我们不在控制器方法之间共享任何东西,那么我们就是好的(?),如果我错了,请纠正我。
提前致谢。
答案 0 :(得分:2)
是的,我们非常好。如您所知,HTTP是无状态,因此请求之间不会共享任何内容。 Play会在处理请求时使用ThreadLocal s。每个请求都有自己的线程,因此您可以完全控制当前请求 - 响应生命周期。
ThreadLocal
如果你想在控制器之间共享数据,你有session个对象,但它很小,只接受String个。对于其他数据类型或不同的共享实现,您应该使用Cache实现。有关详细信息,请参阅session和cache文档。
session
String
Cache