PlayFramework:项目中的多个路径文件

时间:2017-06-28 14:46:17

标签: scala playframework

播放项目中是否可以有多个conf / routes文件?即:

   -> conf/ 
           routes
           utils.routes
           user.routes

或者是否有任何解决方法? 据我所知,conf / routes将被编译,验证将被运行等等。并且会假设有可能以某种方式覆盖此逻辑。

2 个答案:

答案 0 :(得分:4)

您可以尝试使用the official documentation中描述的模块方法将其拆分。

  

也可以将路径文件拆分成更小的部分。这个   如果你想创建一个健壮,可重用的功能,这是一个非常方便的功能   多模块播放应用程序。

简而言之,您可以将应用程序代码分组到一个或多个模块中,每个模块都有自己的路径文件。然后,您可以将较小的路径文件包含到全局路径文件中,如下例所示:

<强> CONF /路线:

GET /index                  controllers.HomeController.index()

->  /admin admin.Routes

GET     /assets/*file       controllers.Assets.at(path="/public", file)

<强>模块/管理/ CONF / admin.routes:

GET /index                  controllers.admin.HomeController.index()

GET /assets/*file           controllers.Assets.at(path="/public/lib/myadmin", file)

答案 1 :(得分:1)

建立在 javierhe 的回答之上。 如果您正在使用 sbt 单个项目和 DI 并且仍然想使用多个路由文件,您可以像下面这样做。 无需 sbt 多项目设置。

conf/ 
     routes
     admin.routes

配置/路由:

GET /index                  controllers.HomeController.index()

->  /admin admin.Routes

conf/admin.routes:

GET /index                  controllers.admin.HomeController.index()

在应用程序加载器中, 将下面添加到构建路由中。

val adminRouter: admin.Routes = {
        val prefix = "/"
        wire[admin.Routes] //replace it with constructor if you do manual DI
}
val router: Routes = {
        val prefix = "/"
        wire[Routes] //replace it with constructor if you do manual DI
}

使用 play 2.8.x 和 macwire 进行测试。