Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务

Play framework是一个web应用程序,大部分的应用逻辑都是通过在Controllers中以响应HTTP请求的方式来完成的。

有时候你可能需要执行一些和HTTP请求无关的应用逻辑。这在处理一些初始化任务、维护任务、不阻塞HTTP请求连接池的耗时任务时非常有用。

Jobs是完全受Framework管理的。也就是说play框架会为你管理所有数据库连接事宜、JPA entity manager同步、事物管理。

要创建一个Job,只需要简单地继承play.jobs.Job类就可以。

Play 内置模板标签(1.2.3版本)

a标签: 用来插入一个连接到控制器方法的html link。如下:

1
#{a @Application.logout()}Disconnect#{/a}

模板内容被解析后变成:

1
<a href="/application/logout">Disconnect</a>

如果要调用的控制器方法没有任何可以以GET方法调用的路由信息,那么Play框架会自动地生成一个隐藏的form,用户点击link后,这个form被被提交到后台。

authenticityToken标签: 用来生成一个包含token信息的可以放到任何form的隐藏域。用来防止跨站点的请求伪造攻击。

play plugin插件 实现类似Servlet中的拦截器效果

创建插件的步骤:
1,创建一个从play.PlayPlugin继承的类,然后覆盖其中的一些方法。
2,在conf目录下的play.plugins文件中注册这个插件,格式如:1003:myPackage.MyPlugin. 这里的数字是插件被调用的顺序。建议设置的值都大于1000,当然如果想要在play framework插件被调用之前调用自己的插件,也可以设置小于1000的值,具体设置成多少参考下面的play内置插件的调用顺序。[内置插件注册在play安装目录\framework\src\play.plugins]

play secure模块 验证和授权管理

参考:http://www.playframework.com/documentation/1.2.3/secure

Play Secure模块放置在play安装目录\modules\secure下,包含在play标准的发布包中。简单的Secure模块被设计用来帮助用户在应用程序中提供验证和授权管理。它提供了一个简单的控制器controllers.Secure,在里面定义了一些拦截器,你能很容易地使用@With注解把这些拦截器加到自己的控制器中。

启用Secure模块:
在/conf/dependencies.yml文件中增加如下内容:

Play Framework template engine模板引擎&模板隐含变量

Play有一个高效的用来动态生成HTML, XML, JSON, 任何文本格式文档的模板系统。模板引擎使用Groovy(一种JVM平台上的动态语言)作为表达式语言。包含一个可以用来创建可重用函数的标签系统。
模板保存在app/views目录下。

模板语法:
模板文件是一个包含用来动态生成内容的占位符的文本文件。模板中的动态元素是使用Groovy语言编写的。Groovy的语法和Java很类似。
动态元素在模板执行阶段被处理。渲染后的结果被作为http响应的一部分而输出到客户端。

1
表达式:${…}

声明其是一个动态的表达式。表达式的执行结果会被插入到${…} 占位符所在的位置中。

1
标签:#{tagName /}

标签式一个模板片段,被使用是通常需要传入一些参数。如果标签只有一个参数,那么根据约定,叫它为“arg”同时, 同时参数名可以省略。

play Modules & 使用成熟的Java模块、框架、Spring & 模块和插件的区别

play module repository:这里的模块仓库是给Play 1.x用的(注意,这里的所有module都是定制的,譬如spring-1.0.2module,1.0.2是模块的版本,而里面包含的sprin的版本是2.5.5)。Play 2.x的模块可以放在Ivy, Maven 或者 Git仓库。

play 1.x的Spring模块:允许在play中使用Spring来管理java bean。其源代码和使用方法在https://github.com/pepite/Play--framework-Spring-module

安装spring模块:使用命令play install spring-{version}在本地安装
项目中使用spring模块:在dependencies.yml中使用下述命令来引入对spring模块的依赖。

play 传值 Scope flash,params,renderArgs,routeArgs,session

play.mvc.Controller:play framework的控制器基类

Scope.Flash flash:一个存放在hash map中存储临时变量的变量范围。。通常情况下,在request的处理过程中把值放进去,然后在紧接着的下一个请求处理中被使用,下一个请求(第2个请求)处理完毕后,值即被销毁。

Scope.Params params:在整个请求的处理过程中都能被访问到,即存放当前请求的参数。

mac上安装MongoDB笔记

下载mongodb 3.0.0版本解压到一个目录
比如
/Users/zhanglilong/develop/mongodb
然后在终端输入cd develop/mongodb/bin/
指定一个数据库目录,开启服务 ./mongod -dbpath ../db/

playframework route 路由

  路由组件负责将HTTP请求交给对应的action处理(一个控制器的静态公共方法),一个HTTP请求在MVC框架里被当做一个事件看待。事件包含2个方面的信息,请求的路径(例如/clients/1524,/photos/list),包含查询字符串(参数字符串)。
  表述性状态转移(REST)是一种类似互联网的分布式超媒体软件架构风格,REST的几个关键性地方设计准则:
  1.应用功能分散在资源中
  2.每个资源使用一个唯一的URI来寻址
  3.所有资源在客户端和资源之间使用一个统一的接口来转移状态
  如果你使用过HTTP,这些接口定义了一些可用的HTTP方法。这些协议用于访问资源的状态:
  客户端-服务端   无状态
  缓存   分层