pf4j整理

简介

A plugin is a way for a third party to extend the functionality of an application. A plugin implements extension points declared by application or other plugins. Also a plugin can define extension points.

原理

原理图

整体接口图

整体接口图

流程

注解处理器

注解处理器(Annotation Processor)是javac内置的一个用于编译时扫描和处理注解(Annotation)的工具。简单的说,在源代码编译阶段,通过注解处理器,我们可以获取源文件内注解(Annotation)相关内容。


ExtensionAnnotationProcessor注解处理器

注解处理器配置

生成extensions.idx

在打plugin包的时候,也会在插件jar包中生成extensions.idex文件,如下图所示:


plugin解压之后

plugin打包的时候也会有extensions.idx文件

loadPlugin流程

loadPlugin流程

startPlugin流程

startPlugin流程

getExtension获取扩展点

getExtension获取对应的扩展点实现

参考

  1. https://pf4j.org/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,581评论 25 708
  • 我喜欢阅读,喜欢旅行,喜欢亲身去感受文字世界里不同的风土文化,喜欢把走过的路程记录下来,没有理由,只因热爱。一个人...
    麦西Massey阅读 669评论 0 4
  • 黑夜里 意志会悄悄的流逝,于是 我为自己点亮一盏明灯 灯光,模仿太阳 把另外一个世界的我 狠狠钉在了地上
    素挲阅读 260评论 0 2
  • 最近因为诸事繁杂,迟迟没有更新,一直在想写点什么。 恰好手头刚看完李洋(笔名:大旗虎皮)写的《迷影文化史》,所以这...
    迷影映画阅读 6,342评论 0 19