从 Scala Play 控制器访问命令行参数

Posted

技术标签:

【中文标题】从 Scala Play 控制器访问命令行参数【英文标题】:Accessing command line args from Scala Play controller 【发布时间】:2021-08-04 16:32:42 【问题描述】:

如何? (例如 sbt “运行 firstArg secondArg thirdArg”

通常,您可以通过从扩展“App”的对象访问数组“args”来访问它们。但是在 Play 中,控制器是您的入口点,而不是扩展“App”的对象。

我已经尝试在播放控制器上使用“with App”并引用“args”,这不起作用。

【问题讨论】:

这些参数是做什么用的?它们代表什么? 你可能想要使用标准的 Java 系统参数 -Dkey=value(通过 sbt 发送为 -J-Dkey=value)。另请记住,在生产中,您的应用不会通过 SBT 运行,因此不要执行特定于 SBT 的操作。 这些参数是我的程序将使用的值(例如,我想提供的客户端的基本 URL)。我知道这并不能代表它在生产中的工作方式。我只是在本地运行程序时尝试访问这些参数。所以 sbt “运行 -J-Dkey=someValue”?我将如何发送第二个参数?以及如何从 Play 控制器内部访问这些参数? sbt "run -J-DfirstKey=firstVal -J-DsecondKey=secondVal" 对吗? 听起来你应该使用配置文件 application.conf 来满足这些需求。 【参考方案1】:

根据你的描述,我宁愿使用配置文件而不是通过启动/运行命令传递的参数。

在https://www.playframework.com/documentation/2.6.x/ConfigFile了解更多可能性

【讨论】:

以上是关于从 Scala Play 控制器访问命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

如何将命令行参数传递给 spark-shell scala 脚本?

Scala Play2 路由器/控制器测试,无需访问数据库

如何从正在处理的项目文件中访问 msbuild 命令行参数?

在Play和Scala中向case类获取请求参数

从 OSGi 包访问命令行参数

Play Framework - 使用参数重定向