您的位置:首页 > 其它

PlayPlugin插件类实现(插件能够在项目启动的时候自动的加载)

2017-08-16 14:16 381 查看
play框架本身基于此类提供了一些已经实现的plugin,比如:ConfigurablePluginDisablingPlugin,CorePlugin, DBPlugin, Evolutions, JobsPlugin, JPAPlugin, MessagesPlugin, TempFilePlugin,ValidationPlugin, WS

这其中有我们非常熟悉的JobsPlugin,实现一些定时JOB,onApplicationStart()和onApplicationStop()在服务启动停止时实现一些我们自己的业务。

onApplicationStart、onApplicationStop都是PlayPlugin的方法,自定义的插件类只需要实现对应的方法就可以实现插件的功能。

打开play-1.2.7.jar包,在根目录下,我们可以看到文件play.plugins,这里面列出了所有play已经实现的插件,该文件中列出的插件类在play启动时加载。打开看看内容:

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.plugins文件(名称必须为play.plugins),存放在app目录下。

第一步定义一个类并且继承PlayPlugin,并且实现onApplicationStart、onApplicationStop方法:

package mongo;

import play.PlayPlugin;

import utils.GGConfigurer;

import utils.GGLogger;

public class GGMongoPlugin extends PlayPlugin{

public void onApplicationStart() {
GGConfigurer.load("conf/application.conf");
GGMongoClientPool.pool.initPool(GGMongoClients.getClients());
GGLogger.info("数据库初始化成功...");
}
public void onApplicationStop() {
GGMongoClientPool.pool.destoryPool();
}

}

第二步:在app目录下添加文件play.plugins,内容如下:

101:mongo.GGMongoPlugin

play framework框架的插件实现很简单,通过如上两步的配置就可以在项目启动的时候加载对应的插件,初始化对应的内容;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐