java 插件框架,正在写
- 通过不同的 classloader 加载 plugin
运行 cn.fanhub.ezreal.core.container.ContainerManagerTest
中的测试方法即可。
- ezreal-testb-1.0-SNAPSHOT.jar 的主要内容:
package cn.fanhub.ezreal.testtest;
import cn.fanhub.ezreal.core.plugin.EzPlugin;
/**
*
* @author chengfan
* @version $Id: TestB.java, v 0.1 2018年03月15日 下午9:05 chengfan Exp $
*/
public class TestB implements EzPlugin {
@Override
public void init() {
System.out.println(org.apache.commons.lang3.StringUtils.upperCase("init b"));
}
@Override
public void execute() {
System.out.println("execute b");
}
@Override
public void destory() {
System.out.println("destory b");
}
}
ezreal.properties
name=pluga
version=0.1
main=cn.fanhub.ezreal.test.TestAPlugin
- test-a-1.0-SNAPSHOT.jar 的主要内容:
package cn.fanhub.ezreal.test;
import cn.fanhub.ezreal.core.plugin.EzPlugin;
/**
*
* @author chengfan
* @version $Id: TestAPlugin.java, v 0.1 2018年03月15日 下午8:49 chengfan Exp $
*/
public class TestAPlugin implements EzPlugin {
@Override
public void init() {
System.out.println("init a");
}
@Override
public void execute() {
System.out.println("execute a");
}
@Override
public void destory() {
System.out.println("des");
}
}
ezreal.properties
name=pluga
version=0.1
main=cn.fanhub.ezreal.test.TestAPlugin
输出:
init a
INIT B
plugb
cn.fanhub.ezreal.testtest.TestB@20398b7c
pluga
cn.fanhub.ezreal.test.TestAPlugin@6fc6f14e