天天看点

playframework 简介

      play是一个为Scala开发者和Java开发者量身打造的高效的、一站式的开发web开发框架,适用于网站开发,也可以用作rest后端。目前,有越来越多的公司被它的“简洁”和“高效”所吸引,并且投入使用,例如LinkedIn等。如果你是一名Scala开发者,或者你是一名Java“极客”,那么相信你看到这个框架肯定会眼前一亮。在此,提倡用Scala来运用play框架。

    以下是我个人总结的play的优点:

   1、play是非常轻量的。传统的Java web框架包含了一个中间层:servlet。由于servlet的存在,导致web的结构很“臃肿”,而且部署所在的服务器还要求可以解析servlet代码(JBoss、Tomcat等),是系统的结构看起来很重。但是play却不同,没有"servlet"这一层,而且本身包含”netty“,打包之后不再是”war“包,而是直接是一个小型的”服务器“(相当于”web程序+tomcat“),这样一来,服务端程序也就真正变成了一个”服务器上的程序“,而不是一个还需要Tomcat等应用服务器的应用。下图是传统Java web框架和play的图:

               传统web框架:

playframework 简介

play框架:

playframework 简介

   2、play内嵌了支持异步I/O的server—Netty。与传统的Java web框架不同,play是异步的,这提供了极大的便利,可以不再考虑线程的阻塞问题,而且应用程序更加高效,但是要有异步编程的思想准备。异步的框架实际上现在已经成了主流框架。

   3、play支持rest。这一点也很特别,play本身含有一个”Router“,这个Router可以自定义你所需要的rest接口,并且告诉程序rest接口需要哪个类中的方法去解决(以后会详细谈)。值得注意的是:在play上定义的rest接口不仅网页端可以调用(我想play作者当初也是想直接用于网页),而且可以直接用来当后端程序和前端client交互的接口,或者分布式系统中其他系统的接口!也就是说:play不仅可以用来制作网站,还可以直接来做后端服务器程序!只需把网站的网页端”削掉“即可!

   4、play支持主流的MVC设计模式

   5、play和Scala相同,都是”为工业而生!不做学术!“play框架本身提供了非常多的库:可以解析Json,将Json和相应的class 类(实际上是case class)相互转换;play本身有集成了sbt(类似于Maven的项目构建工具),可以直接在play上添加依赖;play的社区也很强大,提供了非常多很棒的例子:www.playframework.com;  https://www.typesafe.com/。

   6、play框架是直接建立在Http协议之上的,这就要求大家无需像Java web一样过多的了解HTTP协议之外的web框架API结构:例如Servlet的生命周期等等,而是直接了解HTTP的请求、解析、返回的协议本身的内容,这样可以更加清晰的了解业务本身的处理流程,让程序更加简洁。

    。。。。

   play的优点还有很多,更多的介绍信息请看play的官网www.playframework.com

快速开始:

1、下载最新的Typesafe Activator (https://www.typesafe.com/get-started)

2、解压到本地

3、切到解压目录下,运行cmd

4、运行指令 activator ui

5、访问 http://localhost:8888  (注意:Chrome最好是浏览器,有些低版本浏览器不支持)

6、在打开的页面中找到如下图所示的两个sample:一个是play的Java版的sample,一个是Scala版的

playframework 简介

7、选择其中一个,选择本地的一个下载路径(我习惯放到D盘)。

8、下载完毕后会打开一个web版的IDE,非常的炫酷。这时候你点击”IDE“中的run或者,到下载好的工程下cmd  :activator run。

这时候你访问:http://localhost:9000得到如下图,你就成功了

playframework 简介

或者:你也可以采用playframework官方提供的方式,找到activator 解压的目录,然后运行cmd:

activator new my-first-app play-java
cd my-first-app
activator run
           

也会得到上图的结果。(如果是Scala开发者,可以将上面的 ”play-java“改为”play-scala“)

更多精彩内容,请关注我的微信公众账号 互联网技术窝

playframework 简介