【仅供内部供应商使用,不提供对外解答和培训】
PluginContext是插件模块的核心,每个插件都对应一个PluginContext对象。PluginContext是插件模块的核心,每个插件都对应一个PluginContext对象,可以用来读取插件资源、访问plugin.xml、读取授权信息等。
在插件内部可以用PluginContexts.currentContext()方法获取
| Code Block | ||||
|---|---|---|---|---|
| ||||
//插件内可直接使用PluginContexts的方法获取当前上下文
PluginContext contexts = PluginContexts.currentContext(); |
在插件外面则可以用PluginManager.getContext()等相关方法获取指定的插件上下文
| Code Block | ||||
|---|---|---|---|---|
| ||||
//1.获取所有(包括运行、未运行、禁用的插件) List<PluginContext> pluginContexts = PluginManager.getContexts(); //2.获取所有包含extra-core注入的插件上下文 List<PluginContext> contexts = PluginManager.getContexts(new PluginFilter() { @Override public boolean accept(PluginContext context) { return context.contain(PluginModule.ExtraCore); } }); //3.根据ClassLoader获取插件上下文(每个插件都有一个独立的ClassLoader) PluginContext context = PluginManager.getContext(clazz.getClassLoader()); |
...
插件上下文的继承结构如图所示
...