重庆企业网站推广,基于mvc的jsp网站开发,什么是网络营销?有何特点,专业做网站报价组件 模块 插件关于Play 2模块和插件似乎有些困惑。 我想这是因为两者经常是同义词。 在Play#xff08;两个版本-1和2#xff09;中#xff0c;存在明显的差异。 在本文中#xff0c;我将研究什么是插件#xff0c;如何在Java和Scala中实现插件#xff0c;以及如何从模块… 组件 模块 插件 关于Play 2模块和插件似乎有些困惑。 我想这是因为两者经常是同义词。 在Play两个版本-1和2中存在明显的差异。 在本文中我将研究什么是插件如何在Java和Scala中实现插件以及如何从模块导入插件。 外挂程式 Play 2插件是扩展Java类play.Plugin的类或具有Scala特性play.api.Plugin的类 。 此类可能是您在自己的应用程序中编写的也可能是模块中的插件。 用Java编写插件 创建新的类并扩展play.Plugin。 有三种方法可以覆盖– onStartonStop和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版本一样有onStartonStop和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调用。 启动新应用程序时不会创建此文件因此您需要自己添加它。 语法为priorityclassname。 例如要将示例插件添加到您的项目中可以使用 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组件 模块 插件