gpt4 book ai didi

scala - 启动 Play 应用程序时的代码入口点

转载 作者:行者123 更新时间:2023-12-04 10:50:29 24 4
gpt4 key购买 nike

这是我编写的第一个 Web 应用程序,所以也许这个问题对你们中的一些人来说非常明显,但我在 play 上没有找到任何东西。网站。查看启动应用程序时,代码的一部分如下所示:

package controllers

import javax.inject._
import play.api._
import play.api.mvc._

@Singleton
class HomeController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
def index() = Action { implicit request: Request[AnyContent] =>
Ok(views.html.index())
}
}


所以,现在我想知道,我的 controllerComponents 在哪里?来自?我的申请从哪里开始?通常,我可以查找我的 main方法或 extends App但在这里我真的不知道这个或在哪里玩,一般来说,我从哪里得到我的值(value)观。

最佳答案

简短的回答 - Play Framework 应用程序中没有公开 main 方法。它对开发人员隐藏,因此框架会为您完成所有应用程序启动工作:依赖注入(inject)连接、创建外部资源(例如,在 slick 或其他可插入资源的情况下创建数据库连接)、端口监听启动等。这种方法也称为 Hollywood principle :

Don't call us, we will call you



如果您需要控制应用程序生命周期,也许下一步会对您有所帮助: https://www.playframework.com/documentation/latest/api/scala/play/api/inject/ApplicationLifecycle.html

此外,如果您希望更精确地控制应用程序加载过程,可能需要创建自己的 ApplicationLoader,如本节所述: https://www.playframework.com/documentation/latest/api/scala/play/api/inject/ApplicationLifecycle.html

关于scala - 启动 Play 应用程序时的代码入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59502285/

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