pf4j整理 简介 原理 整体接口图 流程

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.

原理

pf4j整理
简介
原理
整体接口图
流程

原理图

原理图

整体接口图

pf4j整理
简介
原理
整体接口图
流程

整体接口图

流程

注解处理器

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

pf4j整理
简介
原理
整体接口图
流程

ExtensionAnnotationProcessor注解处理器

pf4j整理
简介
原理
整体接口图
流程

注解处理器配置

pf4j整理
简介
原理
整体接口图
流程

生成extensions.idx

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

pf4j整理
简介
原理
整体接口图
流程

plugin解压之后

pf4j整理
简介
原理
整体接口图
流程

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

loadPlugin流程

pf4j整理
简介
原理
整体接口图
流程

loadPlugin流程

startPlugin流程

pf4j整理
简介
原理
整体接口图
流程

startPlugin流程

getExtension获取扩展点

pf4j整理
简介
原理
整体接口图
流程

getExtension获取对应的扩展点实现