它是一个现代化的全栈Web框架,基于Java和Scala开发,特别适合构建高性能、可扩展的Web应用和REST API。...如果你是Scala用户,可以选择: 1 sbt new playframework/play-scala-seed.g8 这会创建一个带有基本结构的项目,包括控制器、路由和视图。...在conf/routes文件中定义路由规则,比如: 12 GET / controllers.HomeController.indexPOST /submit controllers.HomeController.submit...控制器(Controller)负责处理HTTP请求。在Java中,一个简单的控制器可能看起来像这样: 12345678910 package controllers;import play.mvc....message: String) Welcome @message 在控制器中可以调用这个模板并传递数据
项目文件夹中并启动该项目 cd baeldung-play-framework sbt run 这是我们第一次启动项目,可能会花点时间在构建和编译上。...当 Play 项目服务器接收到请求时,它首先会检查 conf/routes 文件,以确定哪个 Controller 控制器和方法将处理该请求。...在 Controller 控制器内部定义并在路由文件中使用的方法称为 Action。...我们想在 HomeController 控制器中定义一个新的 Action 以及路由,这个 Action 将会从 URL 地址中接收到两个参数并且打印出这两个数的和。...简单来说我们将从 URL 中读取两个数并且在页面中展示这两个数的和 为了实现这个功能,我们需要在 HomeController.scala 控制器中添加新的方法,这个方法接收两个参数,计算它们的和并传递到视图模板中渲染
下载Starter Project 打开Play Starter Projects页面,下载Play 2.6.x Scala Starter Example,下载后解压,目录结构如下: ?...由于SBT要从国外服务器下载依赖,所以第一次启动的时间会比较久,如果想加快启动速度请参考配置Repox社区公服。 我们来看看效果吧,在浏览器中访问:http://localhost:9000 ?...bin目录中包含了应用的启动脚本play-scala-starter-example,与项目名称同名。...将play-scala-starter-example-1.0-SNAPSHOT.zip上传至服务器并解压,执行启动命令: nohup ....这是由于模板函数index是在项目编译过程中动态生成的,所以新增的模板函数在IDEA中会提示找不到,这时只要在命令行执行sbt compile,然后在SBT projects窗口单击蓝色刷新按钮,错误即会消失
在撰写本文时,Play 2.6是Play的当前版本,已在开发中取代了Play 1。 优点 1. 与JVM密切相关,因此,Java开发人员会发现它很熟悉且易于使用。 2....Akka HTTP ——Akka HTTP模块在akka-actor和akka-stream之上实现完整的服务器和客户端HTTP堆栈 Akka HTTP是Scala的高度模块化和极其强大的...供应商锁定可能很昂贵且难以破解,因此在采用该解决方案之前应考虑这点。 Chaos ——用于在Scala中编写REST服务的轻量级框架 Chaos是Mesosphere的框架。...Chaos指的是在希腊创世神话中,宇宙创造之前的无形或虚无状态。同样,Chaos(框架)先于创建服务“宇宙”。 优点 1. Chaos易于使用,特别是对于那些熟悉使用Scala的用户来说。 2....正如创作者所说,它确实做得很好 - REST。如果您没有构建RESTful服务,或者您正在构建一个必须集成一些“怪癖”设计的服务,那么Chaos中的默认库可能不是您要求的最佳集成。
我一般是在/home/vamei/Util/下创建一个bin文件夹,并在该文件夹中创建play的软链接。...如果有必要,可以在app下创建models文件夹,用来定义数据模型(model)。 application.conf包含了项目的各个设置参数。 routes记录了url请求和控制器的对应关系。...当有http请求进入时,Play将根据该文件的设置,调用特定的控制器行动。 现在,切换到/home/vamei/test,并运行项目。...而控制器controller只是一个action的集合。在Java编程中,action是controller类的一个方法。...持续运行 Play自带的服务器可以持续运行。将Play安装在目标服务器,比如云上后,在Play项目的根目录下,用: play start 来持续运行服务器。此后你可以按Ctrl-D来返回命令行。
js和js对路由、服务静态文件、构建restapi、灵活的中间件支持、模板引擎和低内存占用有很好的支持。...如果你想从头开始学习Flask,并且需要一个资源,那么你也可以在Udemy上通过Flask和Python课程查看REST API。...最佳Python后端框架 10.Scala开发人员的Play框架 PLAY是用Scala和Java编写的,是最强大的后端web框架之一。...如果你想学习Scala并开始使用Play Framework进行web开发,并且需要一个资源来开始在线学习,那么我建议你加入Scala&Functional Programming for初学者|在Udemy...这是一门在线学习Scala的好课程,是Play框架所必需的,已经有超过3万名学生加入了这门课程。 用于web开发的最佳Scala后端框架 这就是程序员在2022年能学到的最好的后端框架。
Cerebro 是对先前插件的部分重写,并且可以作为自运行工具使用应用程序服务器,基于 Scala 的Play 框架。...Cerebro 是一种现代反应性应用程序; 它使用 Scala 使用 Play 框架在 Scala 中编写,用于后端 REST 和 Elasticsearch 通信。...然后,我们将执行以下步骤: 你可以在 https://github.com/lmenezes/cerebro/releases 上下载 Cerebro 的二进制发行版。 ...我们可以通过如下的方式来运行 crebro: cerebro-0.9.3/bin/cerebro lihuandeMacBook-Pro:bin lihuan$ sh cerebro [info] play.api.Play
Spray支持REST,且Spray自身提供了服务容器spray-can,因而允许Standalone的部署(当然也支持部署到Jetty和tomcat等应用服务器)。...客户端能够处理自己的逻辑,然后再以JSON格式发送请求给REST服务端。这时,我们将模型视为资源(Resource),视图完全在客户端。...JS的控制器负责控制客户端的界面逻辑,服务端的控制器则负责处理业务逻辑,于是传统的MVC就变化为VC+R+C模式。...若硬要使用专有的Web框架,在Scala技术栈下,最为流行的就是Play Framework,这是一个标准的MVC框架。另外一个相对小众的Web框架是Lift。...在内存中它的运行速度是Hadoop MapReduce的100倍,在磁盘中是10倍。
表单(form)是最常见的从客户往服务器传递数据的方式。Play框架提供了一些工具。它们可以从表单中提取数据,验证提交数据的合法性,或者在视图中显示表单。我先来介绍最简单的使用表单提交数据的方式。 ...在app/views下增加模板form.scala.html: 控制器中,增加一个动作form(),显示模板: public static Result form() { return ok(views.html.form.render()); } 在routes...Play服务器可以据此验证输入的合法性。比如@Email的限定就要求输入为"*@*"的形式。@Required则要求输入栏不为空。如果违反这些限定,那么Play将抛出异常。...分别输入合法和不合法的数据,观察Play返回的页面。 表单模板 我上面手动创建模板中的表单,并保持视图中的表单和表单对象一致。我还可以在模板中直接调用表单对象。
,在Kubernetes等容器协调平台中提供近乎即时的扩展和高密度的内存利用。 云原生:在 Kubernetes 等环境中采用 12 因素架构。...Play 建立在 Akka,Play 提供可预测的和最小的资源消耗(CPU,内存,线程)的高度可扩展的应用程序。...作为一个全栈框架,Play 包含构建 Web 应用程序和 REST 服务所需的所有组件,例如集成的 HTTP 服务器、表单处理、跨站点请求伪造 (CSRF) 保护、强大的路由机制、I18n 支持等的。...Play 可以直接支持日常任务和热重载来节省宝贵的开发时间。 Play 结合了生产力和性能,可以轻松使用 Java 和 Scala 构建可扩展的 Web 应用程序。...它基于Jetty HTTP服务器,使用简单的配置文件和约定,不需要额外复杂的配置,可以快速启动和运行。
Play框架可以为桌面和移动接口构建轻量级的、web友好的Java和Scala应用程序。...Kotlin也在JVM上运行,它与Java的互操作性是100%的。使用Spark,您可以轻松地开发web应用程序、微服务和REST api。...Tapestry在单个服务器和服务器集群上可以很好地伸缩。...在新版本中,Vaadin团队将之前的单片框架分为两部分。它有一个名为Vaadin Flow的轻量级Java框架,用于处理路由和服务器-客户端通信,以及一组在用户浏览器中运行的UI组件。...Flow还允许您在Kotlin或Scala中编写应用程序。
服务器可以把不同的数据传递给同一个模板,从而产生不同的页面。 Play同样也有一套模板系统。模板的大部分内容都可以用html写,作为视图,而在一些特别的地方,预留给数据参数。...在模板中,用Scala语言来调用参数。 使用模板 我首先创建一个模板,纯粹起视图功能。在app/views文件夹中,新建文件index.scala.html (如果已有,则删除并重新创建)。 <!...模板语言 这一部分,我把对象作为参数传给模板,然后在模板中显示对象中包含的数据。修改index.scala.html: @(title: String, content: String) 中,两个字符串将填充在模板中的适当位置。 ? 上面把一个对象传递给模板。...我们还可以在模板中调用对象的属性或方法: @object.method() @object.field 模板控制 我还可以用Scala的语法,在模板中实现更复杂的逻辑。
我只在介绍Play frameworks时打破这条规则,理由稍后给出。在将来的项目中使用哪个 Java RESTful框架完全取决于你当前的需求。...有谣言说这个框架是由那些切换到Scala的 Play 2.X 用户创建的 例子 package controllers;public class ApplicationController {...Play Framework 诞生时间: 2011 评分: 4/5 使用Play Framework 很容易地创建,构建和发布 web 应用程序,支持 Java & Scala。...切换至Switch to Scala made some Java developers outraged. 不向后兼容; Play 2.X 重写了 号称轻量级,但有些臃肿 SBT构建工具....它提供了强大的路由和 filtering 系统。统一的client/server Java API.
例如可以利用Twirl编写一个邮件模板,或者是利用Twirl生成静态Html文件等等。 大家可能觉得奇怪,没有了上下文,在模板中如何获取当前的请求呢?答案很简单:通过参数传递喽!...然后我们就可以在views/index.scala.html模板中复用这个布局: @(title: String) @main(title) { 欢迎光临!... } 处理表单 用户在浏览器端通过Html表单填充业务数据并提交至服务器端进行处理,与之对应的,Play 在服务器端提供了 Form 类用于处理与Html表单相关的操作: 数据绑定 数据校验...数据抽取 错误处理 页面渲染 在使用 Play 的 Form 相关功能之前,需要先导入如下路径: import play.api.data._ import play.api.data.Forms...模板文件中,我们可以很方便地将 userForm 中的数据渲染成 HTML 表单: @(userForm: Form[(String, String)]) @helper.form(action =
Cerebro 是对先前插件的部分重写,并且可以作为自运行工具使用应用程序服务器,基于 Scala 的Play 框架。...Cerebro 是一种现代反应性应用程序; 它使用 Scala 使用 Play 框架在 Scala 中编写,用于后端 REST 和 Elasticsearch 通信。...然后,我们将执行以下步骤: 你可以在 https://github.com/lmenezes/cerebro 上下载 Cerebro 的二进制发行版。 ...我们可以点击 nodes tab,我们可以看到如下的界面: 4.png 我们点击rest tab,我们可以输入我们的DSL请求: 5.png 我可以在这个界面里发送我们想要的 DSL 查询请求。...Elasticsearch Service 新用户特惠狂欢,最低4折首购优惠 >> Elasticsearch Service 企业首购特惠,助力企业复工复产>> 关注“腾讯云大数据”公众号,技术交流、最新活动、服务专享一站
这篇文章是关于怎样将play 2.2.3的工程迁移到play 2.3.0 1、安装sbt 0.13.5,去官网下载sbt 0.13.5: http://www.scala-sbt.org/download.html...修改sbt版本: sbt.version=0.13.5 2、升级scala到2.11.1(可选),由于play 2.3 同时支持 scala 2.10 和 scala 2.11所以,可以不用升级到...3、修改插件版本,修改project/plugins.sbt文件: addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.XXX") xxx是当前的...然后最好不要跳级来迁移,就是不要从2.1直接升级到2.3因为2.1中的一些特性在2.3中被移除了,所以首先 升级到2.2看看有提示什么是废弃的特性,然后修改好,接着再升级到2.3。...比如 : def asyncAction = Action { Async { Future(someExpensiveComputation) }} 上面的这个方式在2.2中是建议改成下面这种使用方式
在Scala中,这种简洁的设计比比皆是,例如我们再来看看如何构建一个Map实例: val map = Map("name" -> "PlayScala社区", "url" -> "http://www.playscala.cn...讲了那么多,我只想告诉你Scala并不可怕,其实在Play Framework中,你根本就不需要抱着Scala书籍啃完再写代码,PlayScala社区会为你准备一篇30分钟的为Play初学者准备的Scala...维护一个高质量的『学习』板块,系统而全面地介绍Play Framework开发的相关知识,并将PlayScala社区源码中的最佳实践在这里以文档的形式阐述,你可以认为它是Play Framework官方文档的一个有力补充...PlayScala社区的『分享』和『问答』板块是为『学习』板块服务,这两个板块沉淀下来的知识最终会被收录到『学习』板块。...希望在大家的一起努力下,PlayScala社区(http://www.playscala.cn)可以让更多的人了解并加入Play Framework的开发行列,不断增强Play Framework在国内的影响力
Java生态系统,可以和现有Java类库实现无缝连接,你可以在Scala项目直接引入现有的Java依赖,或是直接引入Java源码文件。...和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。...去年,在100 TB Daytona GraySort比赛中,Spark战胜了Hadoop,它只使用了十分之一的机器,但运行速度提升了3倍。...WEB框架 基于Scala的Web框架有很多,Play、Lift、Scalatra和Finatra等等,其中Play是Lightbend官方维护的框架。...Play 刚开始发布的 1.x 版本是基于Java开发, 从 2.0 版本开始,整个框架使用Scala进行了重写。笔者正是从Play 2.0开始,从传统的SSH/SSI转向Play,一直使用至今。
创建登录View 在views目录下创建login.scala.html: @(title: String) 在Play中,一个模板文件就是一个函数,接受一组参数,返回动态执行后的Html内容,函数名就是不带后缀的文件名,例如上面定义的模板文件编译后生成的函数名称是login。...Play的模板层采用Scala语言编写,借助Scala语言,在Play的模板层你会感觉自己像是一只脱了缰的野马。其实在模板层只需要了解Scala的if和for语法即可。...小结 通过上面简单的登录示例我们会发现,Play中Controller和View是两个独立的模块,之间没有任何耦合。...另外Play在改动代码后无需重启,直接刷新浏览器就可以了,开发体验还是不错的。
领取专属 10元无门槛券
手把手带您无忧上云