Java Play 2.8.x主routes如何引用子目录下的路由文件
Play 2.8.x 子目录路由文件引用方案
Play 2.8.x 原生支持引用conf目录下任意子目录中存放的独立路由文件,不需要将所有路由文件都放在conf根目录下。
配置规则
路由编译阶段会按照conf下的目录结构生成对应包名的Routes类,路径分隔符会自动转换为Java包名的点分隔符,主路由中引用子路由的格式为:[子目录相对conf的路径转点分隔].[路由文件名首字母大写]Routes
针对对应场景的配置步骤
- 调整目录命名:子目录和路由文件名必须符合Java标识符规范,不能包含
-、空格等特殊字符,否则编译阶段会报类名非法错误。建议将计划使用的routes-dir目录调整为routes这类合法命名,将admin.routes放在conf/routes/admin.routes路径下。 - 替换主路由中的FIXME占位符为对应引用值,最终配置如下:
-> /admin routes.admin.Routes
注意事项
- 不需要额外修改sbt编译配置,Play默认会扫描conf下所有层级子目录中的.routes文件参与编译。
- 存放在子目录中的路由文件内部写法和根目录下的路由文件完全一致,不需要调整内部路由的路径规则。
- 多级子目录按照层级顺序用点连接即可,比如路由文件存放在
conf/module/system/user.routes,对应引用值为module.system.user.Routes。
内容的提问来源于stack exchange,提问作者Talos
相关产品推荐
相关产品推荐

