我对整个 Scala 和 Play 很陌生,所以也许我解决这个问题的方法不是正确的。我正在使用 Scala 2.9.1 和 play-mini_2.9.1-2.0.1。
我有一个 App.scala 通常包含路线。但我的意图不是在此文件中插入所有可能的路由,而是按实体拆分它。就我而言:用户、角色、流程。
为了实现这一点,我尝试了类似的方法:
//in App.scala
object App extends Application {
println("Checking Database")
...
println("Resume executions from database")
...
def route = Routes(Process.routes :: User.routes) // I know this is wrong but I think you get what I want to do...
}
//in Process.scala
object Process {
val routes = Routes(
{
case GET(Path("/process")) => Action{ request =>
// returns a list of processes
}
case GET(Path("/process")) & QueryString(qs) => Action{ request =>
val id = QueryString(qs,"id").getOrElse(0)
// return process by id
}
}
)
}
//in User.scala
object User {
val routes = Routes(
{
case GET(Path("/user")) => Action{ request =>
// returns a list of processes
}
case GET(Path("/user")) & QueryString(qs) => Action{ request =>
val id = QueryString(qs,"id").getOrElse(0)
// return process by id
}
}
)
}
这只是第一步。我的最终目标是从指定的包中动态加载所有对象(进程、用户等)。任何想法如何做到这一点?