在Play项目中是否可以拥有多个conf/routes文件?例如:
-> conf/
routes
utils.routes
user.routes
还是有解决办法的吧?我理解conf/routes会被编译并验证等,应该可以通过某种方式覆盖这个逻辑。
在Play项目中是否可以拥有多个conf/routes文件?例如:
-> conf/
routes
utils.routes
user.routes
还是有解决办法的吧?我理解conf/routes会被编译并验证等,应该可以通过某种方式覆盖这个逻辑。
你可以尝试按照模块化的方法进行拆分,具体方式请参考官方文档。
你也可以把路由文件分成多个小片段。如果你想创建一个强大、可重用的多模块Play应用程序,这将是非常有用的功能。
简而言之,您可以将应用程序代码分组到一个或多个模块中,每个模块都有自己的路由文件。然后,您可以像以下示例中那样将较小的路由文件包含到全局路由文件中:
conf/routes:
GET /index controllers.HomeController.index()
-> /admin admin.Routes
GET /assets/*file controllers.Assets.at(path="/public", file)
模块/管理/配置/管理.路由:
GET /index controllers.admin.HomeController.index()
GET /assets/*file controllers.Assets.at(path="/public/lib/myadmin", file)
基于javierhe的回答,如果你正在使用单项目和DI,但仍想使用多个路由文件,可以按如下方式操作。无需使用sbt多项目设置。
conf/
routes
admin.routes
conf/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
}