Play环境,可以单独使用,通过如下方式可以将它引入到自己的项目: libraryDependencies += "com.typesafe.play" %% "play-json" % playVersion...基本JSON类型 所有的基本JSON类型都继承自JsValue trait。...email = (json \ "emails")(0) //更新指定路径值 var obj = Json.obj("a" -> 1) obj ++= Json.obj("b" -> 2) //obj...Json 请求与 Json 响应 Json是目前使用最为广泛的数据交换格式,利用 Play 的 Json 库,我们可以开发非常健壮的 RESTful 应用。...在 Json 处理领域,Play 和 Scala 有着天然的优势,一方面通过 Scala 的优雅语法以及 Play 的 Json DSL,我们可以轻松地构建和处理 Json;另一方面,相比于 Java
在开始阅读本文之前,请确保你熟悉Play-Json的相关开发,或是已经阅读过Play Scala 2.5.x - Play JSON开发指南。 1 为什么要Play with MongoDB?...Reactive-Mongo是一个基于Scala编写的异步非阻塞MongoDB驱动,该项目同时提供了Play框架的集成插件Play-ReactiveMongo。...} else { Ok("fail") } }.recover{ case t: Throwable => Ok("error") } } 所有的操作都是异步的...表示真实被修改的记录数量(不包含更新值和原值相同的记录,因为这些记录其实并没有被修改),UpdateWriteResult.upserted返回被upserted的记录_id列表。...操作支持更新文档或替换文档,如果更新文档的部分属性使用$set操作符,例如上面的示例代码仅更新了name属性。
目前有如下三个基于 Scala 开发的 MongoDB 驱动可供选择: Mongo Scala Driver ReactiveMongo Play Mongo Mongo Scala...Mongo Scala Driver 提供了一套基于 Java 的 Bson Api,无法与 Play Json 集成。...该项目提供了一个 Play 模块,实现了 Bson 和 Json 的自动转换。...Play Mongo 是由 PlayScala 社区为 Play Framework 开发的 MongoDB 模块, 该项目基于 MongoDB 官方的 Scala 驱动,并且提供了更多的实用功能,例如...我们可以使用 @JsonFormat 宏注解,通过一行代码为所有 Case Class 生成相应的隐式 Format 对象: import cn.playscala.mongo.codecs.macrocodecs.JsonFormat
Play Mongo 是一个专门为 Play Framework 开发的 MongoDB 模块, 该项目基于 MongoDB 官方的 Scala 驱动,并且提供了更多的实用功能,例如, 更简洁多样的数据库交方式...目前除了 Play Mongo,你还可以选择, Mongo Scala Driver ReactiveMongo Mongo Scala Driver 是 MongoDB 官方维护的 Scala 驱动,...Mongo Scala Driver 提供了一套基于 Java 的 Bson Api,无法与 Play Json 集成。...该项目提供了一个 Play 模块,实现了 Bson 和 Json 的自动转换。...ReactiveMongo 主要有三个问题,一是版本更新不够及时,无法跟上 MongoDB 的更新节奏;二是可能存在安全隐患,容易造成生产事故,详情参考:issue#721。
另外,我们还更新了按钮及其行为以简化重构工作流,对话框现在可以完全通过键盘访问,您可以使用快捷键和箭头键进行无缝交互。...此外,带有三个大括号的 Scaladoc 块内的代码现在以与标准 Scala 代码相同的方式高亮显示。...我们修正了首次使用 Use sbt for builds(为构建使用 sbt)运行 Scala/JVM 应用程序时引发异常的问题,并确保在导入期间将模块的所有传递依赖项作为直接依赖项插入。...Play Framework 更新 为了解决旧版 Play Framework(2.8 及更低版本)和 JDK 17 之间的兼容性问题,我们引入了一条警告,在 Play 向导中通知您使用了不兼容版本的...遇到预期值时,补全弹出窗口会自动出现。 优化的 JSON 架构处理 Ultimate 我们优化了 JSON 架构验证和补全背后的代码。 因此,IDE 现在可以更快处理这些任务并减少内存消耗。
Twirl模板引擎介绍 Twirl 是 Play 内置的模板引擎,负责数据层展示与用户行为收集。Twirl 被设计成一个独立的模块,可以脱离 Play 环境单独使用。... = views.html.hello("play") 跟常见的模板层引擎一样,模板函数的函数体包含两部分内容,一部分是静态的HTML内容,另一部分是动态的Scala表达式。...</h1> ()用于插入单行代码,插入结果为当前表达式的值;而{}用于插入多行代码,插入结果为最后一行表达式的值。 由于模板文件参与编译过程,并且是类型安全的,所以编译器会帮你拦住大部分错误。...数据抽取 错误处理 页面渲染 在使用 Play 的 Form 相关功能之前,需要先导入如下路径: import play.api.data._ import play.api.data.Forms...小结 Twirl 模板引擎使用 Scala 编程语言作为其底层的模板语法,利用无状态的函数式设计,为开发者带来了非常不错的开发体验。
现在,您可以使用下拉菜单快速选择要添加到工具栏的操作。 我们更新了 设置/首选项 |插件 部分,现在包括一组建议的插件,这些插件会根据您的项目细节自动确定。...Scala IntelliJ IDEA 2023.2 通过改进枚举使用、增强的 TASTy 反编译器以及为 Scala 开发人员提供更好的调试体验来增强对 Scala 3 的支持。...框架和技术 为支持使用框架和技术而引入的以下功能和更新仅在 IntelliJ IDEA 终极版 2023.2 中可用。...IDE 现在为 JavaScript 代码中的 JSON 对象键提供补全功能。 在 v2023.2 中,可以通过导入的模块共享 HTTP 客户端请求处理程序的通用 JavaScript 代码。...若要继续使用 IDE,请将操作系统更新到 Windows 10 或更高版本。
另外,我们更新了按钮及其行为以简化重构工作流程,并且现在可以通过键盘完全访问该对话框,这意味着您可以使用快捷键和箭头键进行无缝交互。...此外,带有三大括号的 Scaladoc 块内的代码现在以与标准 Scala 代码相同的方式突出显示。...我们修复了首次使用 Use sbt for builds运行 Scala/JVM 应用程序时引发异常的问题,并且我们确保在导入期间将模块的所有传递依赖项作为直接依赖项插入。...Play框架更新 为了解决旧版 Play Framework 版本(2.8 及更低版本)和 JDK 17 之间的兼容性问题,我们引入了一条警告,通知您在 Play 向导中使用不兼容版本的 Play 和...当遇到预期值时,会自动出现完成弹出窗口。 优化 JSON 模式处理 最终的 我们优化了 JSON 模式验证和完成背后的代码。因此,IDE 现在可以更快地处理这些任务并减少内存消耗。
参数描述: (1)createCombiner: combineByKey() 会遍历分区中的所有元素,因此每个元素的键要么还没有遇到过,要么就和之前的某个元素的键相同。...如果这是一个新的元素,combineByKey()会使用一个叫作createCombiner()的函数来创建那个键对应的累加器的初始值 (2)mergeValue: 如果这是一个在处理当前分区之前已经遇到的键...,它会使用mergeValue()方法将该键的累加器对应的当前值与这个新的值进行合并 (3)mergeCombiners: 由于每个分区都是独立处理的, 因此对于同一个键可以有多个累加器。...,更新这些副本的值也不会影响驱动器中的对应变量。...如果我们想实现所有分片处理时更新共享变量的功能,那么累加器可以实现我们想要的效果。
Play Mongo 是一个专门为 Play Framework 开发的 MongoDB 模块,该模块提供了一个隐式方法可以简化 Play Json 的开发工作。...通常情况下,我们需要借助 Play Json 提供的Json.format宏为 case class 提供隐式的Reads和Writes, import models._ import play.api.libs.json.Format...implicit val addressFormat = Json.format[Address] } 每当我们在models包创建一个新的 case class,就需要在这里添加一个相应的隐式 Format...编写这些样板代码是很枯燥无味的,为此我们在 Play Mongo 中实现了一个 implicit macro, 只需要一行代码,便可以为所有的 case class 生成隐式的Reads和Writes,...import scala.language.experimental.macros import play.api.libs.json.Format import cn.playscala.mongo.codecs.macrocodecs.JsonFormatMacro
createCombiner: combineByKey 会遍历分区中的所有元素,因此每个元素的键要么还没有遇到过,要么就和之前的某个元素的键相同。...reduceByKey() 会为数据集中的每个键进行并行的归约操作,每个归约操作会将键相同的值合并起来。...由于 combineByKey() 会遍历分区中的所有元素,因此每个元素的键要么还没有遇到过,要么就和之前的某个元素的键相同。 ...如果这是一个在处理当前分区之前已经遇到的键,它会使用 mergeValue() 方法将该键的累加器对应的当前值与这个新的值进行合并。 ...默认情况下,连接操作会将两个数据集中的所有键的哈希值都求出来,将该哈希值相同的记录通过网络传到同一台机器上,然后在那台机器上对所有键相同的记录进行连接操作。
更新了 macOS 上的窗口控件 在 macOS 上以全屏模式使用新 UI 时,窗口控件现在将在主工具栏上显示,而不是像以前一样在浮动栏上显示。...TASTy 反编译器得到显著增强,确保对 Akka、Cats、Play、ZIO 等流行 Scala 库进行准确的反编译。...JavaScript 中的 JSON 正文补全 Ultimate IDE 现在为 JavaScript 代码中的 JSON 对象键提供补全,例如使用 fetch() 调用或引用 Axios 库的代码。..._VM options_(虚拟机选项)中 Spring Boot 配置键的自动补全 Ultimate 设置新的 Spring Boot 运行配置时,_VM options_(虚拟机选项)字段为 -D 标志后面出现的键提供自动补全选项...datetime 值的时区。
否则会影响kafka的java版本。...最近很多网站直接copy我的文章。如https://python.iitter.com/,这个网站专门爬别人文章。完全垃圾。 请关注我的首页。...cmak-3.0.0.5/lib/com.typesafe.akka.akka-slf4j_2.12-2.5.19.jar:/opt/kafka/cmak-3.0.0.5/lib/com.typesafe.play.play-json...如果需要在后台运行,可以使用nohup。...-Dhttp.port=8080 4.使用cmak 通过http://192.168.162.201:9000/ 可以访问cmak。
Play-Utils 介绍 Play-Utils 是一个专门为 Play Framework 开发的实用工具包模块,目前已实现如下功能: Retry 自动请求重试 1 Retry Retry 工具包可以帮助你设置不同的重试策略...,即每次重试的时间间隔相同。...你也可以使用 retryWhen 设置重试条件: import scala.concurrent.duration._ retry.withFixedDelay[Int](3, 1 seconds)...1.2.2 JitterRetry JitterRetry包含两个参数minDelay和maxDelay,用于控制延迟时间的上限和下限,真实的延迟时间会在这两个值之间波动: import scala.concurrent.duration...= 10) 1.2.3 FibonacciRetry FibonacciRetry使用斐波纳契算法计算下一次的延迟时间: import scala.concurrent.duration._ retry.withFibonacciDelay
更新了 macOS 上的窗口控件 在 macOS 上以全屏模式使用新 UI 时,窗口控件现在将在主工具栏上显示,而不是像以前一样在浮动栏上显示。...TASTy 反编译器得到显著增强,确保对 Akka、Cats、Play、ZIO 等流行 Scala 库进行准确的反编译。...JavaScript 中的 JSON 正文补全 Ultimate IDE 现在为 JavaScript 代码中的 JSON 对象键提供补全,例如使用 fetch() 调用或引用 Axios 库的代码。...数据库工具 Redis Cluster 支持 Ultimate 您现在可以连接到 Redis Cluster 并拥有与独立 Redis 相同的功能集。...值的时区。
介绍 从Play2.5.x开始,Play使用Akka Streams实现流处理,废弃了之前的Enumerator/Iteratee Api。...根据官方文档描述,迁移至Akka Streams之后,Play2.5.x的整体性能提升了20%,性能提升相当可观。...虽然官方已经更新了JavaStream的文档,但是ScalaStream的文档仍然没有更新,已经提了issue,希望能尽快得到反馈。...ReactiveMongo是一个基于Scala开发的完全异步非阻塞、并且提供流处理功能的MongoDB驱动。...结合Play和ReactiveMongo二者的流处理功能,我们可以很方便地实现完全异步非阻塞的报表导出功能。
解释器可以根据分配给变量的值推断数据类型。 性能 Scala是一种编译语言,这意味着它在执行之前被翻译成机器代码。...面向对象编程 Scala是一种纯粹的面向对象的语言,这意味着所有值都是对象,所有操作都对对象执行。这使得 Scala 的 OOP 更加一致和可预测,因为所有值都具有相同的行为和属性。...另一方面,Python 的动态类型会使它在对代码进行更改时更容易出现错误。如果使用类型提示和类型提示检查器,Python 可以具有相同的功能,但它并不常见。...因此,Scala可用于JVM支持的所有平台,其中包括为Python列出的相同平台.对于Scala JVM,JavaScript或LLVM,这意味着这两种语言都需要不同的工具来运行,但Python和JVM...图书馆 Scala有一套丰富的库和框架,它们建立在JVM之上,比如Akka用于构建并发和分布式系统,Play框架用于Web开发。
介绍 本文的目标是通过一个用户登录示例,简要的介绍使用Play进行Web开发的基本流程。...另外Scala不建议使用return语句,默认最后一条语句的值作为函数的返回值。...Play的模板层采用Scala语言编写,借助Scala语言,在Play的模板层你会感觉自己像是一只脱了缰的野马。其实在模板层只需要了解Scala的if和for语法即可。...Scala虽然入门门槛较高,但是带来的收益是巨大的,随着你对Play了解的深入一定可以慢慢的体会到这点。...Controller完成一些业务运算,然后将数据以参数的形式传递给View,View没有任何的内置对象,所有的依赖都定义在参数列表中,Controller和View之间只是简单的函数调用关系,状态通过函数参数进行传递
注: 上面是Ubuntu下的安装过程。Linux系统都类似。 在Mac OS下,选择合适的路径安装play,过程也相同。 对于Windows下的安装,没有探索。欢迎补充。...将有一个新的文件夹/home/vamei/test出现在当前路径。它包含该项目的所有文件。...action的响应可以传给某个视图,比如上面的index.scala.html,从而更好的控制显示效果。最后的结果,就是一个http响应,也就是我们所看到的页面。...此时的Play不依赖于Shell,即使退出服务器的登陆,Play还是会持续运行。 使用其它端口运行: play "start -Dhttp.port=8080" 停止运行。...切换到项目的根目录下,使用命令: play stop 总结 play new play run 动态生成响应 model-control-view
领取专属 10元无门槛券
手把手带您无忧上云