pf4j实例 插件框架

实现整个过程需要三个部分,第一就是根接口,第二是插件,第三是应用程序。这是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
    public static 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!");
        }
        
    }
}

 

转载于:https://www.cnblogs.com/wangguoning/p/6951717.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值