【发布时间】:2015-09-30 13:32:22
【问题描述】:
我正在使用 play-slick-3.0 项目作为迁移我拥有的旧版 Play 项目的基础。遗留的controller.Application 曾经是一个对象,现在是一个类,同样所有其他控制器实现都是对象,现在是类。遗留项目正在执行“控制器链接”,即应用程序委托给其他控制器:
class Application extends Controller {
...
def uploadDo(context: String) = { implicit request ⇒
// a lot of boilerplate code common to all contexts
context match {
case "aum" ⇒ AumController.uploadDo(storedFile)
case "portfolio" ⇒ PortfolioController.uploadDo(storedFile)
case "price" ⇒ PriceController.uploadDo(storedFile)
}
// more boilerplate code common to all contexts
}
}
问题是我不能再做那种委托了,因为 AumController 是一个类而不是一个对象了。我也不能定义关联的对象,因为这些类被实例化并且依赖项是由框架注入的......例如参见同一项目中的Application.scala,无法直接实例化它。
如何修复/迁移上述委托问题?
【问题讨论】:
标签: scala playframework