pf4j實例 插件框架
阿新 • • 發佈:2017-06-06
out () import npoi div -- -1 nds 1.2
實現整個過程需要三個部分,第一就是根接口,第二是插件,第三是應用程序。這是3個java項目。
首先要下載jar包,百度搜索maven repository,然後搜索pf4j,如下圖,下載第一個的相應版本就可以,我用的是1.2
然後,創建根節點項目,
package com.wgn.test1; import ro.fortsoft.pf4j.ExtensionPoint; /* * 根接口,繼承ExtensionPoint * 將該項目打成jar包,放到plugin項目的lib文件夾下,然後構建配置路徑 */ public interface Testpf4j extends ExtensionPoint {public void hello(); }
第三,創建插件項目,並將根接口項目打成jar包,放到插件項目的lib目錄下,構建路徑
package com.wgn.test2; import com.wgn.test1.Testpf4j; import ro.fortsoft.pf4j.Extension; import ro.fortsoft.pf4j.Plugin; import ro.fortsoft.pf4j.PluginWrapper; public class Testpf4jImpl extends Plugin { public Testpf4jImpl(PluginWrapper wrapper) {super(wrapper); } @Override public void start() { System.out.println("----------------------start"); } @Override public void stop() { System.out.println("----------------------stop"); } /* * 必須添加static修飾符 */ @Extension publicstatic class Testpf4jImpls implements Testpf4j { @Override public void hello() { System.out.println("hello world!"); } } }
MANIFEST.MF:
Manifest-Version: 1.0 Plugin_Dependencies: Implementation-Title: Demo Plugin #2 Implementation-Version: 1.2.0 Archiver-Version: Plexus Archiver Built-By: root Specification_Title: Demo Plugin #2 Implementation-Vendor-Id: com.wgn.test1.Testpf4j Plugin-Version: 0.0.1 Plugin-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目錄下
package com.wgn.test2; import com.wgn.test1.Testpf4j; import ro.fortsoft.pf4j.Extension; import ro.fortsoft.pf4j.Plugin; import ro.fortsoft.pf4j.PluginWrapper; public class Testpf4jImpl extends Plugin { public Testpf4jImpl(PluginWrapper wrapper) { super(wrapper); } @Override public void start() { System.out.println("----------------------start"); } @Override public void stop() { System.out.println("----------------------stop"); } /* * 必須添加static修飾符 */ @Extension public static class Testpf4jImpls implements Testpf4j { @Override public void hello() { System.out.println("hello world!"); } } }
pf4j實例 插件框架