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整理第1张

原理图

原理图

整体接口图

pf4j整理第2张

整体接口图

流程

注解处理器

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

pf4j整理第3张

ExtensionAnnotationProcessor注解处理器

pf4j整理第4张

注解处理器配置

pf4j整理第5张

生成extensions.idx

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

pf4j整理第6张

plugin解压之后

pf4j整理第7张

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

loadPlugin流程

pf4j整理第8张

loadPlugin流程

startPlugin流程

pf4j整理第9张

startPlugin流程

getExtension获取扩展点

pf4j整理第10张

getExtension获取对应的扩展点实现

免责声明:文章转载自《pf4j整理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇h5-audio/video标签机器学习:R语言中如何使用最小二乘法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

关于利用RD client远程电脑,和输入法的一些问题

我在寝室,利用转接头,借助手机app“RDclient”成功完成在键盘上输入文字,并在电脑上输出内容。“RDclient”可以完成手机端远程连接电脑端,只需要知道电脑的ip,用户名和密码就可以。“RDclient”这是微软自家发布的软件,还是很不错的。不过,在刚开始连接的时候,输入法遇到一点问题。后来,在手机上,调出输入法打字的界面,更换成英文输入模式,然后...

buildroot使用介绍【转】

整个Buildroot由Makefile脚本和Kconfig配置文件组成。就像编译Linux内核一样,您可以编译一个完整的Linux系统软件,该软件可以通过buildroot配置和menuconfig修改直接写入机器。使用buildroot构建基于qemu的虚拟开发平台。请参阅通过buildroot+qemu构建ARM Linux虚拟开发环境。工具链--˃配...

微信小程序生成带参数的二维码(小程序码)独家asp.net的服务端c#完整代码

1) 我第一次使用wx。小程序端请求调用API,发现这是一个坑!@-_~Page:'pages/index/index',//在此处填写要跳转到的小程序页面。你不能在它前面添加/oh。发布后必须为1024页//小程序代码的边长,以像素为单位,范围[2801280]},标头:{'content-type':“application/json;charset=U...

mysql删除某个表前100条数据

删除前100条数据,肯定是首先需要排序,然后再删除前100条数据。...

JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--实现

调用该函数并通过apply方法将该函数绑定到obj。访问属性时会触发get方法,并返回调用myCall方法的函数。最后,delete context myFn属性返回res。apply方法与call方法非常相似,只是参数传递不同。apply的第二个参数是数组或类似数组的对象。接下来,让我们实现一个功能相对单一的应用程序方法。略微兼容:1功能。原型myAppl...