我正在使用 cake 模式在 play 2.2.1 应用程序中注入组件之间的依赖关系。应用程序由播放控制器组成,我们使用自定义ActionBuilder
来打开我们的数据库会话。我们目前通过控制器和 DAO 层将该 DB 会话作为隐式参数一直传递回我们的模型层。(ActionBuilder -> 控制器 -> DAO -> Slick 模型)
我使用 play-slick 进行 slick 集成,并尝试使用 DAO 方法来封装对我们 slick 模型的访问。我们的 DAO 有几个函数定义,例如findById(id: Int)(implicit s: Session): Option[Entity]
. 我想通过注入一个 DBSession 检索组件来避免每个函数定义中的隐式会话参数。每次都将在 DAO 功能块内调用此组件以检索当前请求数据库会话。
来自 Java 和 Spring 世界,鉴于我可能无法依赖任何 ThreadLocal 范围代理,我不知道如何实现这一点。
知道我将如何实现这一目标吗?这是个好主意还是坏主意?