首页 > TAG信息列表 > pf4j
sbp 基于 pf4j开发的spring boot 扩展框架
sbp 是一个值得学习的,因为官方的spring 扩展不是很用,而且也有不少问题sbp 解决了不少默认spring 扩展的问题 参考资料 https://github.com/hank-cp/sbppf4j spring 集成几个问题
以下整理几个实际使用碰到的问题 问题 Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/pf4j/PluginClassLoader) previously initiated loading for a different type with name "org/springframework/context/ApplicationContext"pf4j 官方几个比较又用的扩展
pf4j spring 是一个集成spring 很不错的选择,官方出品,就是有点简单pf4j update 是一个支持插件下载,更新,管理的服务,很不错 说明 当然官方还提供了web 以及其他的都还不错 参考资料 https://github.com/pf4j/pf4j-springhttps://github.com/pf4j/pf4j-updatepf4j 默认系统扩展以及机制说明
pf4j 支持直接在应用中进行插件的开发以及运行(不需要复杂的处理) 与serviceloader 比较类似,我么只需要添加一个注解就可以了(@Extension) 参考运行 public static void main(String[] args) { PluginManager pluginManager = new DefaultPluginManager(); //pf4j 插件加载机制
主要简单说明下pf4j 的插件加载处理 参考代码 pf4j/src/main/java/org/pf4j/AbstractPluginManager.java 加载代码 loadPlugins 处理 加载处理 @Override public void loadPlugins() { log.debug("Lookup plugins in '{}'", pluginsRootpf4j 试用
pf4j 试用上还是比较灵活的,并没有太多的配置,而且比较灵活,支持类隔离 参考项目 项目结构 ├── README.md ├── bootstrap // 启动入口,使用了assembly 进行打包,当然对图spring 项目也是可以的 │ ├── pom.xml │ └── src │ ├── main