加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala Play Framework – 控制器作为类或单例

发布时间:2020-12-16 19:20:37 所属栏目:安全 来源:网络整理
导读:我正在尝试Play 2.4.2 for Scala,我不清楚控制器是应该定义为类还是单例.文档说明: A Controller is nothing more than a singleton object that generates Action values. 但是代码示例显示: class Application extends Controller { ... } 为了进一步复
我正在尝试Play 2.4.2 for Scala,我不清楚控制器是应该定义为类还是单例.文档说明:

A Controller is nothing more than a singleton object that generates
Action values.

但是代码示例显示:

class Application extends Controller { ... }

为了进一步复杂化,如果我定义一个类,intellij会给我一个警告:

但是,如果我使用单例,我会收到编译错误(但没有警告):

package controllers

import play.api._
import play.api.mvc._

object Application extends Controller { ... }

Error:(6,-1) Play 2 Compiler:
/Users/Toby/IdeaProjects/play-scala/conf/routes:6: type Application is
not a member of package controllers

哪种方法是正确的?

解决方法

如果使用静态路由器,您的控制器应该是对象.静态是Play 2.4中的默认路由器,与Play 2.3及之前的行为相同.

如果使用Play 2.4中新增的注入路由器,则可以将控制器转换为类.您需要在build.sbt中启用注入的路由器:

routesGenerator := InjectedRoutesGenerator

更新:注入的路由器现在是Play 2.5中的默认路由器

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读