从 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 脚本?