播放项目中是否可以有多个conf / routes文件?即:
-> conf/
routes
utils.routes
user.routes
或者是否有任何解决方法? 据我所知,conf / routes将被编译,验证将被运行等等。并且会假设有可能以某种方式覆盖此逻辑。
答案 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 进行测试。