在Scala/Lift中组织会话变量

jli*_*123 7 scala lift session-state

想了解如何在scala/lift应用程序中最好地组织会话变量.

我已经在线阅读了许多scala资料,并且在所有引入会话变量的示例中都发现了以下范例:

  1. 声明一个扩展SessionVar类的对象
  2. 将该对象放入包含片段(或任何文件)的文件中
  3. 从代码库中的任何位置访问该对象(提升将根据用户的http会话的生命周期来处理会话var的生命周期)

也许我不理解某些东西,但我担心这种方法会导致各种文件中的一大堆这些对象到处都是.如果它是一个小应用程序,它不是一个大问题,但当一个项目变大,这可能会导致混乱.

对于那些从事大型scala项目的人来说,是否有一种普遍接受的更好的方法?(即使它的简单内容就像将所有这些对象放入一个公共文件一样?)

谢谢.

Kim*_*bel 5

这有点主观,但我会尝试一下。我认为这取决于会话var在您的项目中的范围。

  • 如果仅在一个代码段中需要会话var,则应将其设为该类的私有成员。
  • 如果您需要多个(而非全部)代码片段,请将这些代码片段放入包中,并使该对象专用于该包。如果它们很多,则可以创建一个额外的文件来保存它们。
  • 如果全局需要它,请将其放到中心位置,也许放在包对象中。
  • 如果可能,请避免完全使用SessionVars。