通过@PluginFactory注解配置插件工厂,注解参数说明如下:

示例代码:
@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接口事件方法及说明如下:

示例代码:
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());
}
}相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习