gpt4 book ai didi

Scala Play Framework - Controller 作为类或单例

转载 作者:行者123 更新时间:2023-12-04 11:04:07 25 4
gpt4 key购买 nike

我正在为 Scala 尝试 Play 2.4.2,但我不清楚 Controller 是否应该定义为类或单例。文档状态:

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



但是代码示例显示:
class Application extends Controller { ... }

更复杂的是,如果我定义了一个类,intellij 会给我一个警告:

intellij warning

但是,如果我使用单例,则会出现编译错误(但没有警告):
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



哪种方法是正确的?

最佳答案

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

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

routesGenerator := InjectedRoutesGenerator

更新:注入(inject)的路由器现在是 Play 2.5 中的默认设置

关于Scala Play Framework - Controller 作为类或单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com