背景
Jenkins、SonarQube等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
- pf4j-spring-core:

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

被折叠的 条评论
为什么被折叠?



