手册

目录

自定义插件工厂

收藏122

阅读11901

更新时间2022-04-11

自定义插件工厂有两种方式:
  • 通过@PluginFactory注解配置插件工厂,注解参数说明如下:

    QQ截图20170207104507.png

    示例代码:

        @PluginFactory(pluginHome = "${root}/plugins")
        public class DemoPluginFactory extends DefaultPluginFactory {
        }
    
        // 或者
    
        @PluginFactory(pluginHome = "${root}/plugins",
                autoscanPackages = {"com.company", "cn.company"},
                automatic = true,
                includedClassPath = false,
                listenerClass = DemoPluginEventListener.class)
        public class DemoPluginFactory extends DefaultPluginFactory {
        }
  • 通过工厂配置对象实例化

    创建工厂配置对象:

        DefaultPluginConfig _conf = new DefaultPluginConfig();
        _conf.setPluginHome(new File(RuntimeUtils.replaceEnvVariable("${root}/plugins")));
        _conf.setAutomatic(true);
        _conf.setAutoscanPackages(Arrays.asList("com.company", "cn.company"));
        _conf.setIncludedClassPath(false);
        _conf.setPluginEventListener(new DefaultPluginEventListener());

    创建并初始化插件工厂实例对象:

        IPluginFactory _factory = new DefaultPluginFactory();
        _factory.init(_conf);

    自定义插件工厂的事件监听方法:

    自定义插件工厂的事件处理方式与默认插件工厂不同,须通过实现IPluginEventListener接口完成插件生命周期事件监听,IPluginEventListener接口事件方法及说明如下:

    QQ截图20170207104529.png

    示例代码:

    public class DemoPluginEventListener implements IPluginEventListener {
    
        public void onInited(IPluginContext context, IPlugin plugin) {
            System.out.println("onInited: " + context.getPluginMeta().getName());
        }
    
        public void onStarted(IPluginContext context, IPlugin plugin) {
            System.out.println("onStarted: " + context.getPluginMeta().getName());
        }
    
        public void onShutdown(IPluginContext context, IPlugin plugin) {
            System.out.println("onShutdown: " + context.getPluginMeta().getName());
        }
    
        public void onDestroy(IPluginContext context, IPlugin plugin) {
            System.out.println("onDestroy: " + context.getPluginMeta().getName());
        }
    }

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号