Play Framework是一个开源的Web框架,背后商业公司是Typesafe。要介绍Play以前,首先理清Play的两个不一样的分支。 Play 1.x 使用Java开发,最新版本是1.3.1,只支持Java项目。从11年开始就进入了维护阶段,新项目通常不考虑使用Play1。 Play 2.x 使用Scala和Java开发,同时支持Java和Scala项目。 这里主要介绍最新的Play2.4 for Java。有一点须要提早说明,虽然Play2主要由Scala开发,可是对于项目中的通常开发人员而言, 使用Play能够彻底不懂Scala,具体状况后面会说明。java
Play2的模板是很强大而且容易上手的. 相对于Java领域其余模板引擎(Freemarker, Velocity, JSP, Groovy, etc), 主要有三个特色.
1) 简单易上手, 没有JSP里面繁杂的内置对象和指令, 全部功能都经过方法调用完成.
2) 主流IDE中都支持Play模板的静态类型检查, 相似JSP.
3) 支持反向路由.git
这个上面介绍过,不用重启服务器。github
日常开发的时候使用run启动Play,是跑在dev模式。 Play会定时扫描源码目录进行热更新,而且类都是访问的时候再加载,提升启动速度。 使用start启动项目就运行在prod模式。Play内置dist命令,能够把全部的文件打包成一个zip,解压以后直接运行bin目录下的可执行文件便可启动项目,除了JDK以外无须任何其余外部依赖。 这大大减轻了运维成本,同时也可以很方便的进行持续集成(CI)。redis
这个以前也说过,Play抛弃了Servlet/JSP里Session等概念, 内置没有提供方法将对象与服务器实例进行绑定(你要使用HashMap存的话Play也没办法)。 推荐的作法是使用外部缓存, 好比Redis, Memcached等。可能有人会以为没有Session是Play的一个缺点(Play里的Session和Servlet Session不是一回事), 可是只要你开发过流量大一点的应用, 你就会理解这点。缓存
若是你以前开发过Java项目, 确定写过**.properties或者管理过一大堆的xml。Java内置库对properties文件的处理是很弱的,你不得不本身写一些工具类去进行处理, 并且properties文件还不支持更复杂的语法。Play使用Typesafe Config库,配置文件使用HOCON格式,默认配置文件为application.conf。 你能很容易读取里面的配置, 而且你也能够把本身的配置写在里面。因此项目中基本不须要使用properties或者xml文件了,除了第三方库须要的。服务器
RoR框架之因此好用,主要缘由之一就是围绕RoR有至关丰富的插件可供选择,不少业务功能甚至都不须要开发就能实现。Play的插件数量固然相对于RoR仍是要少一些, 不过你遇到的需求基本都有现成的插件可使用。好比发邮件, 受权和验证, sitemap生成,第三方登陆等等。本身写一个插件也很简单。架构
由于Play诞生的时候TDD已经很火热,因此Play对测试的支持很是好。 app
Play2从诞生起就能很容易的支持RESTful风格的架构框架
转载自:http://blog.csdn.net/u011225629/article/details/47971093less