scala - 试图了解使用哪个播放库
问题描述
以下库之间有什么区别:
libraryDependencies += "com.typesafe.play" %% "play-ahc-ws-standalone" % "LATEST_VERSION"
和
libraryDependencies += "com.typesafe.play" %% "play-ahc-ws" % "LATEST_VERSION"
我只是想弄清楚哪个是正确的使用。我所做的是在一个单独的库中创建一个 Play 模块,我想将它注入到一个 Play 应用程序中。但是当我使用上面列出的第一个库时,它只提供了一个StandaloneWSClient
. 当我将其注入 Play 应用程序时,它无法将实现绑定到它。但是当我切换第二个库时,它提供了一个WSClient
Play 应用程序可以找到要绑定的实现,因为它已经有一个可以在 build.sbt 定义中指定的实现,即ws
.
解决方案
在 Play 项目中,您应该使用play-ahc-ws
通常像这样添加的项目
libraryDependencies += ws
该ws
值来自 Play 的 sbt 插件
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.1")
另一方面,play-ahc-ws-standalone
它本身就是一个 HTTP 客户端,可以在 Play 项目之外使用,例如,如何使用,scalaj-http
或者requests-scala
根本不知道 Play 的 HTTP 客户端。
Play 2.6 Migration Guide记录了差异。
推荐阅读
- java - 带星号的 For 循环
- java - Java 声音不播放
- javascript - 将对象值与数组进行比较?
- python - if 和 elif 语句不起作用/不被 python 识别
- angular - 如何在角度 8 中从有效负载中访问单独的字段
- php - 在 PHP 中根据天数生成调度程序日历
- c# - 编译器错误消息:CS0234:命名空间“传真”中不存在类型或命名空间名称“WebApp”(您是否缺少程序集引用?)
- node.js - 当我们使用嵌套对象时,formData Joi 验证失败
- java - 发布时未指定 gradle suproject 版本
- git - 在 git 中重新创建 prod 分支的情况下,应该采取什么措施来清理日志?