我是 Play 和 Scala(2.6 版)的新手,我不知道如何让路由以简单的方式工作。将 2.6 文档中的示例拼凑在一起,我设法创建了一个自定义应用程序加载器,据我所知,这是执行 Evolutions 迁移所必需的。我发现的示例包括一个 var router = Routes.empty BuiltInComponentsFromContext 似乎需要使用路由器,但是这样做,按照我的做法,我的路由现在被破坏了,现在我得到的只是“Action Not找到”消息。
这是我的application.conf:
play.application.loader=MyApplicationLoader
router = my.application.Router
这是应用程序加载器
import play.api.ApplicationLoader
import play.api.ApplicationLoader.Context
import play.api.BuiltInComponentsFromContext
import play.api.db.{Database, DBComponents, HikariCPComponents}
import play.api.db.evolutions.EvolutionsComponents
import play.api.routing.Router
import play.filters.HttpFiltersComponents
//import com.softwaremill.macwire._
class MyApplicationLoader extends ApplicationLoader {
def load(context: Context) = {
new MyComponents(context).application
}
}
class MyComponents(cntx: Context)
extends BuiltInComponentsFromContext(cntx)
with DBComponents
with EvolutionsComponents
with HikariCPComponents
with HttpFiltersComponents
{
// this will actually run the database migrations on startup
//lazy val router = Router.empty
val router = Router.empty
applicationEvolutions
}
在我看来,它声明:
val router = Router.empty
我基本上使我在我的 conf/routes 文件中声明的任何路由无效,并且我想到使用 Router.load 方法,但我找不到如何传递所需环境和配置的示例方法的值。假设我不想使用静态路由,我该怎么做?