我习惯于像Ruby on Rails或Laravel这样的框架,其中我有像User
这样的模型,并且当我想对模型进行查询时(例如,获取所有用户在数据库中)我做了类似User::all()
。Scala对象:作为DAO的Scala对象
我是Play for Scala和Slick的新手,我已经看到的所有项目和文档都使用DAO通过模型访问数据库。我以为Scala object
是我需要的(或者至少我习惯于),所以我不需要在任何地方注入DAO类。
随着DAO我做这样的事情:
class Application @Inject()(adminDAO: AdminDAO) extends Controller {
def index = Action.async {
adminDAO.all() map { case admins =>
Ok(Json.toJson(admins))
}
}
}
而且与对象(和不知道),我希望做这样的事情:
class Application extends Controller {
def index = Action.async {
Admin.all() map { case admins =>
Ok(Json.toJson(admins))
}
}
}
试图执行“DAO “object
我发现几乎不可能注入播放Application
上下文而不使用Play.current
已弃用。这种贬低以及缺乏注入背景的方式(或者至少我没有发现它)听起来很奇怪。我开始认为我在想它是错误的。作为DAO使用Scala object
真的是个好主意吗?
你也可以看看[Anorm](https://www.playframework.com/documentation/2.5.x/ScalaAnorm)。 – cchantep