【借助pf4j实现基于spring-boot的插件化开发

文章介绍了如何利用PF4J库实现基于Spring-Boot的插件化开发,通过自定义ClassLoader动态加载和卸载插件。项目包含一个示例应用,展示了插件的管理、加载、启用、禁用等功能,并提供了SDK供用户进行功能扩展。用户可以基于SDK开发插件,然后在业务功能扩展点动态加载。

借助pf4j实现基于spring-boot的插件化开发

背景

JenkinsSonarQube等Java实现的Web应用都有插件体系,一般来说都是先从插件市场下载一个插件,然后系统要求重启(某些功能可以不用重启),插件功能就能在页面上出现,并且还能实时禁用、启用、删除插件。

在某些工具型Web应用中,也需要类似的插件扩展和管理功能,OSGI定义了一套Java应用模块化的规范,Apache和Eclipse都有相应的实现,但是都太重了,PF4J是一个非常好的工具,不管是集成还是功能都有较好的表现,核心原理是通过自定义ClassLoader动态加载和卸载插件,并且提供了插件管理工具。

场景

有一个spring-boot实现的web应用,在某一个业务功能上提供扩展点,用户可以基于SDK实现功能扩展,要求可以管理插件,并且能够在业务功能扩展点处动态加载功能。

项目地址&结构

项目地址:clyoudu/pf4j-spring

pf4j-spring
├── demo
│   ├── manager
│   ├── plugins
│   │   ├── greeting-button-plugin
│   │   ├── system-button-plugin
│   │   └── whether-button-plugin
│   └── sdk
├── pf4j-manager-spring-boot-starter
└── pf4j-spring-core
  1. pf4j-spring-core:
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值