1. 概述
2. 插件式开发架构要领
2.1 插件运行主体
2.2 插件的注入、配置和初始化
2.2.1 插件配置信息
插件名称
插件版本号
插件描述信息
依赖的其他插件清单
2.2.2 插件的注入及初始化
2.2.2.1 插件定义示例
通过C#语言的Attribute特性对插件进行描述
通过实现Init, StartAsync, StopAsync标准接口初始化、启动或关闭插件。这是对插件生命周期的管理。
[Plugin(Alias = "PluginA", Description = "测试插件")]
public class Plugin :: PluginBase, ISupportInitPlugin
{
public void Init(IPluginInitContext context)
{
//自定义初始化行为
}
public override Task StartAsync(IPluginContext context)
{
//自定义启动行为
return base.StartAsync(context);
}
public override Task StopAsync(IPluginContext context)
{
//自定义关闭行为
return base.StopAsync(context);
}
}
复制
2.3. 插件通信机制
2.3.1 基于虚拟服务总线形式的通信机制
2.3.2 插件间消息通信
3. C++语言下的插件开发案例
4. JAVA体系下的插件开发案例
4.1 OSGI简介
4.2 OSGI整体架构
4.2.1 模块层
bundle 以 jar 包形式存在的模块化物理单元,包含了代码,资源文件和元数据(模块描述信息)。
bundle 是开发、部署 OSGi 应用的基本单元。
bundle 的核心是 META-NF 目录下的 MANIFEST.MF 文件。
bundle 定义了内部包的对外可见性。
每个 bundle 都有单独的类加载器。
4.2.2 生命周期层
4.3.3 服务层
4.3 Eclipse插件示例
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: PluginDemo
Bundle-SymbolicName: PluginDemo
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: plugindemo.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-16
Automatic-Module-Name: PluginDemo
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-ActivationPolicy: lazy
复制
package plugindemo;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
@Override
public void start(BundleContext context) throws Exception {
System.out.println("Hello World!!");
}
@Override
public void stop(BundleContext context) throws Exception {
System.out.println("Goodbye World!!");
}
}
复制
WARNING: Using incubator modules: jdk.incubator.vector, jdk.incubator.foreign
Hello World!!
osgi> 22:48:00.337 [Worker-0: Loading available Gradle versions] INFO org.eclipse.buildship.core.internal.util.gradle.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
!SESSION 2021-08-31 22:47:57.492 -----------------------------------------------
复制
5. 总结
文章转载自一个程序员的修炼之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
1954次阅读
2025-04-09 15:33:27
2025年3月国产数据库大事记
墨天轮编辑部
890次阅读
2025-04-03 15:21:16
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
613次阅读
2025-04-10 15:35:48
征文大赛 |「码」上数据库—— KWDB 2025 创作者计划启动
KaiwuDB
506次阅读
2025-04-01 20:42:12
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
496次阅读
2025-04-11 09:38:42
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
476次阅读
2025-04-14 09:40:20
最近我为什么不写评论国产数据库的文章了
白鳝的洞穴
420次阅读
2025-04-07 09:44:54
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
372次阅读
2025-04-17 17:02:24
天津市政府数据库框采结果公布,7家数据库产品入选!
通讯员
368次阅读
2025-04-10 12:32:35
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
342次阅读
2025-04-18 10:01:22