【问题标题】:implicit declaration for database session playframework数据库会话播放框架的隐式声明
【发布时间】:2014-01-18 13:55:30
【问题描述】:

我正在使用 scala playframework 开发一个项目,并且我隐式声明了数据库连接会话,以便我可以读取/写入 mysql 数据库,而不必每次都调用数据库会话。这是一个好习惯吗?

有什么取舍吗?

谢谢

【问题讨论】:

  • “任何线程脱落”是什么意思?
  • 你的意思是“权衡”吗?考虑到我们在假期期间对并发编程的痴迷程度,这是一个可以理解的错误。
  • @vidya 抱歉权衡。我已经编辑过了。谢谢
  • 不用担心。我想这就是你的意思。我只是在开玩笑。

标签: mysql scala playframework-2.0


【解决方案1】:

使用隐式会话当然更可取,因此框架可以为您管理这些细节。唯一真正的缺点是所有方法都需要(implicit s: Session),但这可以是worked around

还有一个额外的好处,那就是在测试过程中让事物更“可插拔”。

【讨论】:

    【解决方案2】:

    通过隐式传递“上下文”信息是一种合理的做法。您甚至可以通过传递给 Scala 标准库中的 futures 的 ExecutionContext 看到这一点。

    它绝对比单例对象中的全局值或伪全局值要好,而且它使测试时更容易模拟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多