play框架之简介

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,具体情况后面会说明。

一、Play的特性

1. Play2的模板引擎

Play2的模板是很强大并且容易上手的. 相对于Java领域其他模板引擎(Freemarker, Velocity, JSP, Groovy, etc), 主要有三个特点.
1) 简单易上手, 没有JSP里面繁杂的内置对象和指令, 所有功能都通过方法调用完成.
2) 主流IDE中都支持Play模板的静态类型检查, 类似JSP.
3) 支持反向路由.

2. 热部署

这个上面介绍过,不用重启服务器。

3. 内置dev/prod环境,内置部署脚本

平常开发的时候使用run启动Play,是跑在dev模式。 Play会定时扫描源码目录进行热更新,并且类都是访问的时候再加载,提高启动速度。 使用start启动项目就运行在prod模式。Play内置dist命令,可以把所有的文件打包成一个zip,解压之后直接运行bin目录下的可执行文件即可启动项目,除了JDK之外无须任何其他外部依赖。 这大大减轻了运维成本,同时也能够很方便的进行持续集成(CI)。

4. 使用Play开发的Server大部分能做到Stateless

这个之前也说过,Play抛弃了Servlet/JSP里Session等概念, 内置没有提供方法将对象与服务器实例进行绑定(你要使用HashMap存的话Play也没办法)。 推荐的做法是使用外部缓存, 比如Redis, Memcached等。可能有人会觉得没有Session是Play的一个缺点(Play里的Session和Servlet Session不是一回事), 但是只要你开发过流量大一点的应用, 你就会理解这点。

5. 好用的配置库

如果你之前开发过Java项目, 肯定写过**.properties或者管理过一大堆的xml。Java内置库对properties文件的处理是很弱的,你不得不自己写一些工具类去进行处理, 而且properties文件还不支持更复杂的语法。Play使用Typesafe Config库,配置文件使用HOCON格式,默认配置文件为application.conf。 你能很容易读取里面的配置, 并且你也可以把自己的配置写在里面。所以项目中基本不需要使用properties或者xml文件了,除了第三方库需要的。

6. Play插件

RoR框架之所以好用,主要原因之一就是围绕RoR有相当丰富的插件可供选择,很多业务功能甚至都不需要开发就能实现。Play的插件数量当然相对于RoR还是要少一些, 不过你遇到的需求基本都有现成的插件可以使用。比如发邮件, 授权和验证, sitemap生成,第三方登录等等。自己写一个插件也很简单。

7. 优秀的测试支持

因为Play诞生的时候TDD已经很火热,所以Play对测试的支持非常好。

8. 优秀的REST支持

Play2从诞生起就能很容易的支持RESTful风格的架构

转载自:http://blog.csdn.net/u011225629/article/details/47971093

时间: 2024-10-29 00:01:28

play框架之简介的相关文章

【转】Android 网络通信框架Volley简介(Google IO 2013)

Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v=yhv8l9F44qo&feature=player_embedded 1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Go

流式计算框架-STORM简介

在当前的数据分析领域,对实时数据的计算需求越来越强烈,在此领域,出现了各类计算框架,如:Storm.S4等.目前本土公司对这些流式计算框架的应用也比较广泛,但苦于相关文档英文居多,缺少成系列且与官方相对应的中文手册.本系列试图从官方文档翻译入手,给大家呈现较为完备的中文资料,同时也是对自身知识的总结沉淀. 在这个系列博客中,我们选择了twitter的Storm框架,原因很简单,因为本人长期使用的就是该框架,咱们先从简介开始. Apache Storm是一个免费.开源.分布式的实时计算系统.相对于

hadoop备战:yarn框架的简介(mapreduce2)

新 Hadoop Yarn 框架原理及运作机制 重构根本的思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控.新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调.一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务.ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织.

客户端高性能组件化框架React简介、特点、环境搭建及常用语法

明天就是春节了 预祝大家新春快乐 [ ]~( ̄▽ ̄)~* 天天饭局搞得我是身心疲惫= = 所以更新比较慢 今天想跟大家分享的就是这个大名鼎鼎的React框架 简介 React是这两年非常流行的框架 并不难,还是挺容易上手的 起源于Facebook内部项目(一个广告系统) 传统页面从服务器获取数据,显示到浏览器上,用户输入数据传入服务器 但随着数据量增大,越来越难以维护了 Facebook觉得MVC不能满足他们的扩展需求了(巨大的代码库和庞大的组织) 每当需要添加一项新的功能或特性时,系统复杂度就

爬虫框架--scrapy简介

简介 scrapy被认为是比较简单的爬虫框架,资料比较齐全,网上也有很多教程.官网上介绍了它的四种安装方法,PyPI.Conda.APT.Source,我们只介绍最简单的安装方法. Windows下的安装 pip install scrapy Linux下的安装 apt-get install python-scrapy APT 因为Linux的强大及辅助工具比较多,大家比较喜欢在Linux下使用scrapy爬虫框架,Linux下编写python代码最强大的工具可属eclipse,但最方便的要属

自制简单的.Net ORM框架 (一) 简介

在自己研究ORM之前,也使用过几个成熟的ORM方案,例如:EntityFramework,PetaPoco,Dapper 等,用是很好用,但是对自己来说总是不那么方便,EF比较笨重,Dapper要自定义扩展等等,所以萌发了开发适合自己的ORM的想法,因为未起名字,所以下文所有地方都使用MyORM来代替. Nuget地址: https://www.nuget.org/packages/Dai.CommonLib.Sql 简介: MyORM是一个小型的ORM,稍微参考了PetaPoco,支持简单的对

chromium嵌入式框架libcef简介

 Introduction CEF简介 The Chromium Embedded Framework (CEF) is a simple framework for embedding Chromium-based browsers in other applications. It is a BSD-licensed open source project founded by Marshall Greenblatt in 2008 and based on the Google Chr

DeepLearning tutorial(6)易用的深度学习框架Keras简介

之前我一直在使用Theano,前面五篇Deeplearning相关的文章也是学习Theano的一些笔记,当时已经觉得Theano用起来略显麻烦,有时想实现一个新的结构,就要花很多时间去编程,所以想过将代码模块化,方便重复使用,但因为实在太忙没有时间去做.最近发现了一个叫做Keras的框架,跟我的想法不谋而合,用起来特别简单,适合快速开发.(其实还有很多其他的深度学习框架都是比较容易用的.) 1. Keras简介 Keras是基于Theano的一个深度学习框架,它的设计参考了Torch,用Pyth

JEESZ分布式框架平台简介

平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性.扩展性 以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apach

android hook 框架 libinject2 简介、编译、运行

简介: libinject 最开始是2011年看雪android安全版版主之一‘古河’大神发布的一份android平台的注入库:  发个Android平台上的注入代码  ,网上很多随后发布的注入代码都是其变种,不过我这几天尝试运行那份代码,发现有些问题,本博运行和分析的代码是另外一位大神的改进版本,在我的环境里运行注入和挂钩都成功了 : Android中的so注入(inject)和挂钩(hook) - For both x86 and arm ,为了表示区别,我把这个项目称为  libinjec