pf4j 一个强大的java 插件框架
支持的特性
- 可以灵活的让单体系统转化为模块化系统
- 轻量,只依赖sl4j-api 以及java-semver,扩展灵活
包含的组件
- Plugins 所有插件基类
- PluginManager,抽象插件管理
- PluginLoader 插件加载
- ExtensionPoint java 接口或者抽象类,扩展点会执行代码的地方
- Extension 扩展的实现,是一个java 的注解类
说明
pf4j 构建需要的版本是9,但是运行时最小是java8,实际上dremio 在处理hive 的也是利用了pf4j,还是值得学习的,我们可以基于serviceloader (spi)以及commons-discovery 也是一个简单的选择