组件 模块 插件_播放2 –模块,插件有什么区别?

组件 模块 插件

关于Play 2模块和插件似乎有些困惑。 我想这是因为两者经常是同义词。 在Play(两个版本-1和2)中,存在明显的差异。 在本文中,我将研究什么是插件,如何在Java和Scala中实现插件,以及如何从模块导入插件。

外挂程式

Play 2插件是扩展Java类play.Plugin的类,或具有Scala特性play.api.Plugin的类 。 此类可能是您在自己的应用程序中编写的,也可能是模块中的插件。

用Java编写插件

创建新的类,并扩展play.Plugin。 有三种方法可以覆盖– onStart(),onStop()和enabled()。 您还可以添加一个带有play.Application参数的构造函数。

要在应用程序启动时发生某些功能,请重写onStart()。 要使功能在应用程序停止时发生,请覆盖onStop()。 就这么简单! 这是一个不覆盖enabled()的示例实现。

package be.objectify.example;import play.Application;
import play.Configuration;
import play.Logger;
import play.Plugin;/*** An example Play 2 plugin written in Java.*/
public class MyExamplePlugin extends Plugin
{private final Application application;public MyExamplePlugin(Application application){this.application = application;}@Overridepublic void onStart(){Configuration configuration = application.configuration();// you can now access the application.conf settings, including any custom ones you have addedLogger.info("MyExamplePlugin has started");}@Overridepublic void onStop(){// you may want to tidy up resources hereLogger.info("MyExamplePlugin has stopped");}
}

在Scala中编写插件

创建一个新的Scala类,并扩展play.api.Plugin。 与Java版本一样,有onStart(),onStop()和enabled()方法以及play.api.Application构造函数参数。 这是Scala的实现:

package be.objectify.exampleimport play.api.{Logger, Application, Plugin}/*** An example Play 2 plugin written in Scala.*/
class MyExamplePlugin(application: Application) extends Plugin
{override def onStart(){val configuration = application.configuration;// you can now access the application.conf settings, including any custom ones you have addedLogger.info("MyExamplePlugin has started");}override def onStop(){// you may want to tidy up resources hereLogger.info("MyExamplePlugin has stopped");}
}

将插件挂接到您的应用程序中

不管使用哪种实现语言,将插件添加到conf / play.plugins文件后,插件都会直接由Play调用。 启动新应用程序时不会创建此文件,因此您需要自己添加它。 语法为<priority>:<classname>。 例如,要将示例插件添加到您的项目中,可以使用

10000:be.objectify.example.MyExamplePlugin

类名称是您的插件的名称。 优先级决定了插件启动的顺序,只需要一个大于或小于另一个插件的数字即可。 如果您有多个插件,则可以显式订购它们:

5000:be.objectify.example.MyExamplePlugin
10000:be.objectify.example.MyOtherExamplePlugin

模组

可以将模块视为可重用的应用程序,您可以将其包含在自己的应用程序中。 它类似于添加特定功能的第三方库。 一个模块可以包含插件,您可以使用conf / play.plugins文件将其挂接到您的应用程序中。

例如,如果您使用的是Deadbolt 2,则需要在play.plugins文件中添加以下内容:

10000:be.objectify.deadbolt.DeadboltPlugin

可以在Play 2 GitHub Wiki上找到Play 2模块的列表。

您可以在此处和此处阅读有关为Play 2创建模块的更多信息 。

参考: 播放2 –模块,插件有什么区别? 来自我们的JCG合作伙伴 Steve Chaloner,来自Objectify博客。


翻译自: https://www.javacodegeeks.com/2012/05/play-2-modules-plugins-whats-difference.html

组件 模块 插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算hcie贴吧_专业介绍|计算机网络技术

点击蓝字关注我们01专业特色计算机网络技术专业所有在职专任教师都具有高级职称和硕士学位&#xff0c;双师比例为75&#xff05;&#xff1b;在企业核心岗位工作的兼职老师4人。筹备组建华为ICT学院。华为ICT学院是华为公司主导的&#xff0c;面向全球在校大学生传递华为ICT技…

url重写(urlrewrite)的一些系统变量

学php也有3年了&#xff0c;一直对url重写不是很了解&#xff0c;本学用到的话都是百度一下&#xff0c;再复制作简单修改&#xff0c;一些变量的参数都不太了解什么意思&#xff0c;难得今天有时间&#xff0c;做个笔记吧&#xff01; 1&#xff09;可用的一些系统变量&#x…

linux日志自动按天保存,linux实现按天生成日志文件并自动清理

linux实现按天生成日志文件并自动清理前篇文章中讲到如何在Linux crontab创建每秒执行的方法&#xff0c;高人可能早意识到日志文件没做处理&#xff0c;假如没人工处理久了日后越来越大肯定会出现问题&#xff0c;当然人工处理也不现实。为了解决这个问题&#xff0c;所以有了…

使用Java成功生成代码的7个技巧

作为介绍&#xff0c;最近我有点安静&#xff0c;部分原因是我一直在忙于Chronicle-FIX的工作 。 这是Chronicle-Enterprise套件中的一个新的超低延迟库&#xff0c;我们证明了该库可以在低个位数微秒内解析和存储消息。 当然&#xff0c;它利用了我们的开源产品Chronicle-Queu…

通达信版弘历软件指标_中线公式指标(副图 通达信 贴图)明确文字提示,辅助判断中线走势下载_通达信公式...

中线公式指标(副图 通达信 贴图)明确文字提示&#xff0c;辅助判断中线走势下载详细说明第一股票公式网()告诉您&#xff1a;当前正要下载&#xff1a;中线公式指标(副图 通达信 贴图)明确文字提示&#xff0c;辅助判断中线走势下载 中线公式指标(副图 通达信 贴图)明确文字提示…

新巴巴运动网 项目第十一天

新巴巴运动网 项目第十一天 今天内容 购物车 创建购物车对象 加入购物车分析开发流程 加入购物车代码开发 同款商品合并(非登陆时、已登陆时) 去购物车结算分析开发流程 去购物车结算代码开发 创建购物车对象 购物项 Sku 是否有货 数量 购物车 List<购物项> 结果集 小计…

linux查看apache配置文件路径,linux 命令行下查看apache配置文件httpd.conf位置

如何用linux命令查看apache配置文件httpd.conf位置&#xff0c;说明如下输入命令httpd -V输出结果[rootMyServer ~]# httpd -VServer version: Apache/2.2.15 (Unix)Server built: Dec 15 2015 15:47:31Servers Module Magic Number: 20051115:25Server loaded: APR 1.3.9, APR…

qt linux webservice,Qt实现访问WebService

之前也许是因为根本不用的原因吧,,,根本没有想过Qt访问WebService的方式....要解决这个问题,因为Qt现行版没有提供直接访问的类库...首先是一些必备知识,我连的服务器是用VS2010建的只有 string helloworld() 和string getHello(string str)两个接口的iis服务器.针对这个我一共…

eclipse 插件教程_编写Eclipse插件教程–第1部分

eclipse 插件教程Eclipse是三个最受欢迎的Java开发IDE之一。 其成功的原因之一是其可扩展性。 对于任何知道该怎么做并且已经做到的人来说&#xff0c;编写eclipse插件都可以非常轻松快捷。 不幸的是&#xff0c;第一次在Eclipse中进行操作会非常耗时且令人沮丧。 Eclipse框架非…

mac cad石材填充图案_CAD电视背景墙画法步骤

在做室内装修设计的时候&#xff0c;电视背景墙往往是我们需要考虑的重点。1、打开平面布置图。2、复制一份&#xff0c;主要复制电视墙区域。3、矩形选框框选电视墙区域。4、删除选框意外的线条。5、旋转90度&#xff0c;让我们正对电视墙。6、在下方画基准线&#xff0c;作为…

HDU-3065 病毒侵袭持续中 AC自动机又是一板子!

病毒侵袭持续中 上一题是求出现多少病毒输出病毒序号&#xff0c;而这题输出每个病毒出现的次数。这题有字典树基础都能做出来&#xff0c;把叶子节点用相应的编号标记起来&#xff0c;匹配的时候遍历到叶子节点用一个数组把次数存起来就行了。 有了前几题的教训直接用静态树做…

街机linux有安卓好吗,Ubuntu下用xmame玩街机游戏

Ubuntu下用xmame玩街机游戏xmame是Windows下mame的Linux版&#xff0c;gxmame是xmame的图形化前端。mame号称是模拟效果最好、支持roms最多的模拟器&#xff0c;不过这个我就不清楚了。安装很简单sudoapt-getinstallgxmame会自动安装xmame和gxmame&#xff0c;安装后在Gnome游戏…

运行时间_运行一段时间报高压保护

请点击蓝字“阿理支持连”关注哦一起来探索空调的技术Discovery ●运行一段时间报高压保护某地区用户报修一台柜机运行一段时间(20分钟)后报E1高压保护&#xff0c;到底怎么回事呢&#xff1f;让我们一起来探讨一下吧&#xff01;一、案例描述这是一套定频柜机&#xff0c;E1高…

使用Lambda的装饰设计模式

随着Java中lambda的出现&#xff0c;我们现在有了一个新工具&#xff0c;可以更好地设计我们的代码。 当然&#xff0c;第一步是使用流&#xff0c;方法引用和Java 8中引入的其他简洁功能。 展望未来&#xff0c;我认为下一步是重新访问完善的设计模式&#xff0c;并通过功能性…

linux nohup /dev/null,nohup结合/dev/null

Linux重定向linux中经常需要后台执行程序&#xff0c;并将程序输出结果记录到本地文件&#xff0c;因此可选择>>或者>操作。追加模式>> 示例&#xff1a;echo ‘abc’ >>test.txt覆盖模式> 示例&#xff1a;echo abc>test.txt0标准输入、1标准输…

CodeForces 757B Bash's Big Day(线性筛)

题意&#xff1a;给你一个集合&#xff0c;让你找到一个最大的子集&#xff0c;使得子集里面的元素的gcd&#xff01;1&#xff0c;输出子集的元素的个数。 思路&#xff1a;先将集合里面的元素哈希&#xff0c;再线性筛。 PS&#xff1a;明明以前做过类似的题的&#xff0c;结…

macbook pro python开发_Mac打造python2 python3开发环境

最新版的MacOS Sierra默认带的python环境仍然为2.7.10&#xff0c;本文将介绍使用Brew安装python3.5并做简单的配置&#xff0c;打造python2&#xff0c;python3共存的开发环境直接尝试brew安装&#xff0c;提示需要执行brew link gdbmthatsitdeMacBook-Pro:~ thatsit$ brew in…

存进销系统 c语言大作业,c语言,程序设计大题,*纳税以系统(2)求法,求解...

话题&#xff1a;要求将2元兑换成有伍角贰角和壹角(每种都有),问有...问&#xff1a;要求将2元兑换成有伍角贰角和壹角(每种都有),问有几种兑换法?(c语言程...推荐回答&#xff1a;#include int main(void) { int i_5,i_2,i_1; for(i_50;i_5话题&#xff1a;题目:销售管理系统…

将2个字符写入单个Java char

这是创建超低延迟的Chronicle FIX-Engine时使用的另一个好技巧。 在从字节流中读取数据时&#xff0c;如果可能的话&#xff0c;将数据存储在char而不是将其读取到String效率更高。 &#xff08;至少您要避免创建String对象&#xff0c;尽管可以通过使用缓存或使用CharSequenc…

时间管理的6句话

早起 避免开会 避免多任务&#xff0c;保持单进程集中注意力、高效工作&#xff0c;每天最多4小时 你没空时不会做的事情&#xff0c;有空了也不会做 划分任务的优先级&#xff0c;不要把急切当作重要 转载于:https://www.cnblogs.com/easonw/p/6286977.html