pf4j实例 插件框架

摘要:
实现整个过程需要三个部分,第一就是根接口,第二是插件,第三是应用程序。这是3个java项目。首先要下载jar包,百度搜索mavenrepository,然后搜索pf4j,如下图,下载第一个的相应版本就可以,我用的是1.2然后,创建根节点项目,packagecom.wgn.test1;importro.fortsoft.pf4j.ExtensionPoint;/**根接口,继承ExtensionPoint*将该项目打成jar包,放到plugin项目的lib文件夹下,然后构建配置路径*/publicinterfaceTestpf4jextendsExtensionPoint{publicvoidhello();}第三,创建插件项目,并将根接口项目打成jar包,放到插件项目的lib目录下,构建路径packagecom.wgn.test2;importcom.wgn.test1.Testpf4j;importro.fortsoft.pf4j.Extension;importro.fortsoft.pf4j.Plugin;importro.fortsoft.pf4j.PluginWrapper;publicclassTestpf4jImplextendsPlugin{publicTestpf4jImpl{super;}@Overridepublicvoidstart(){System.out.println;}@Overridepublicvoidstop(){System.out.println;}/**必须添加static修饰符*/@ExtensionpublicstaticclassTestpf4jImplsimplementsTestpf4j{@Overridepublicvoidhello(){System.out.println("helloworld!

实现整个过程需要三个部分,第一就是根接口,第二是插件,第三是应用程序。这是3个java项目。

首先要下载jar包,百度搜索maven repository,然后搜索pf4j,如下图,下载第一个的相应版本就可以,我用的是1.2

pf4j实例 插件框架第1张

然后,创建根节点项目,

packagecom.wgn.test1;

importro.fortsoft.pf4j.ExtensionPoint;

/** 根接口,继承ExtensionPoint
 * 将该项目打成jar包,放到plugin项目的lib文件夹下,然后构建配置路径
 */
public interface Testpf4j extendsExtensionPoint {
    public voidhello();
}

pf4j实例 插件框架第2张

第三,创建插件项目,并将根接口项目打成jar包,放到插件项目的lib目录下,构建路径

packagecom.wgn.test2;

importcom.wgn.test1.Testpf4j;

importro.fortsoft.pf4j.Extension;
importro.fortsoft.pf4j.Plugin;
importro.fortsoft.pf4j.PluginWrapper;

public class Testpf4jImpl extendsPlugin {

    publicTestpf4jImpl(PluginWrapper wrapper) {
        super(wrapper);
    }

    @Override
    public voidstart() {
        System.out.println("----------------------start");
    }
    
    @Override
    public voidstop() {
        System.out.println("----------------------stop");
    }
    
    /** 必须添加static修饰符
     */@Extension
    public static class Testpf4jImpls implementsTestpf4j {

        @Override
        public voidhello() {
            System.out.println("hello world!");
        }
        
    }
}

pf4j实例 插件框架第3张

MANIFEST.MF:

Manifest-Version: 1.0Plugin_Dependencies: 
Implementation-Title: Demo Plugin #2Implementation-Version: 1.2.0Archiver-Version: Plexus Archiver
Built-By: root
Specification_Title: Demo Plugin #2Implementation-Vendor-Id: com.wgn.test1.Testpf4j
Plugin-Version: 0.0.1Plugin-Id: plugin01
Plugin-Provider: Decebal Suiu
Plugin-Class: com.wgn.test2.TestPf4jImpl
Build-dk: 1.8.0_102
Specification-Version; 1.2.0

extensions.idx:

com.wgn.test2.Testpf4jImpl$Testpf4jImpls

最后,新建程序项目,将插件放入plugins目录下,根接口放入lib目录下

pf4j实例 插件框架第4张

packagecom.wgn.test2;

importcom.wgn.test1.Testpf4j;

importro.fortsoft.pf4j.Extension;
importro.fortsoft.pf4j.Plugin;
importro.fortsoft.pf4j.PluginWrapper;

public class Testpf4jImpl extendsPlugin {

    publicTestpf4jImpl(PluginWrapper wrapper) {
        super(wrapper);
    }

    @Override
    public voidstart() {
        System.out.println("----------------------start");
    }
    
    @Override
    public voidstop() {
        System.out.println("----------------------stop");
    }
    
    /** 必须添加static修饰符
     */@Extension
    public static class Testpf4jImpls implementsTestpf4j {

        @Override
        public voidhello() {
            System.out.println("hello world!");
        }
        
    }
}

免责声明:文章转载自《pf4j实例 插件框架》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Openjudge-NOI题库-和数u-boot核心初始化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章