Playplugin

Plugin可以做那些事情

能够在play容器启动、关闭、重新加载的时刻,做资源加载等操作

Controller参数绑定

Http请求的一个filter

 

Play自带的plugin

0:play.CorePlugin

100:play.data.parsing.TempFilePlugin

200:play.data.validation.ValidationPlugin

300:play.db.DBPlugin

400:play.db.jpa.JPAPlugin

450:play.db.Evolutions

500:play.i18n.MessagesPlugin

600:play.libs.WS

700:play.jobs.JobsPlugin

100000:play.plugins.ConfigurablePluginDisablingPlugin

 

Play自带Plugin作用

插件

说明

play.CorePlugin

拦截/@status请求

返回play应用的状态

调用Ehancer插件做一些类增强操作

play.data.parsing.TempFilePlugin 上传文件时,创建临时文件,并在请求执行完后删除临时文件夹.

play.data.validation.ValidationPlugin action方法调用前,调用oval框架验证

play.db.DBPlugin 创建数据库连接池

play.db.jpa.JPAPlugin JPA相关操作,Entity类增强以及事务处理

play.i18n.MessagesPlugin 国际化

play.libs.WS 类似于HttpClient里net的工具类

play.job.JobsPlugin 初始化Play任务(job)

ConfigurablePluginDisablingPlugin 将启用的plugin加载到plya.plugins.PluginCollection中,所有plugin的启动顺序必须早于该插件

 

如何配置plugin

在app目录下新建play.plugins(只能是该文件名和后缀)

在play.plugins文件中新增记录, index:className(完整的类名). 例如: 

     

注意:加入play.plugins配置中的插件默认是开启的

 

停用plugin

在play的*.conf文件中,配置

        plugins.disable=className

        plugins.disable.anything=className

        className是存在与play.plugins中配置的插件完整类名

        建议:将一些不需要的plugin停用掉

 

自定义plugin

l  继承play.PlayPlugin类

 

PlayPlugin重点方法说明

onApplicationStart() 在容器启动时候调用

afterApplicationStart()在容器启动后调用

onApplicationStop() 在容器停止的时候调用

* Invocation*() play处理请求前后成功失败等情况调用 详见源码(play.Invoker.Invocation.run())

* ActionInvocation*() controller执行前后成功失败等情况调用 详见源码(play.mvc.ActionInvoker.invoke(Request, Response))

serveStatic() :用于处理静态文件,如果plugin处理了则返回true

rawInvocation:是否由plugin处理请求

getStatus() :获取状态

getMessage():通过locale获取国际化的信息,会根据优先级来获取,但是如果高优先级返回了,则低优先级无法调用

loadTemplate() : 获取模板

bind():绑定controller方法参数


转载于:https://my.oschina.net/u/923508/blog/389538

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值