当前位置: 首页 > 软件库 > Web应用开发 > J2EE框架 >

springboot-plugin-framework

springboot 插件式开发框架
授权协议 Apache-2.0
开发语言 Java
所属分类 Web应用开发、 J2EE框架
软件类型 开源软件
地区 国产
投 递 者 齐志勇
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

介绍

该框架主要是集成于 springboot 项目,用于开发插件式应用的集成框架。

核心功能

  1. 插件配置式插拔于springboot项目。
  2. 在springboot上可以进行插件式开发, 扩展性极强, 可以针对不同项目开发不同插件, 进行不同插件jar包的部署。
  3. 可通过配置文件指定要启用或者禁用插件。
  4. 支持上传插件和插件配置文件到服务器, 并且无需重启主程序, 动态部署插件、更新插件。
  5. 支持查看插件运行状态, 查看插件安装位置。
  6. 无需重启主程序, 动态的安装插件、卸载插件、启用插件、停止插件、备份插件、删除插件。
  7. 在插件应用模块上可以使用Spring注解定义组件, 进行依赖注入。
  8. 支持在插件中开发Rest接口。
  9. 支持在插件中单独定义持久层访问等需求。
  10. 可以遵循主程序提供的插件接口开发任意扩展功能。
  11. 插件可以自定义配置文件。目前只支持yml文件。
  12. 支持自定义扩展开发接口, 使用者可以在预留接口上扩展额外功能。
  13. 利用扩展机制, 定制了SpringBoot-Mybatis扩展包。使用该扩展包, 使用者可以在插件中自定义Mapper接口、Mapper xml 以及对应的实体bean。并且支持集成Mybatis-Plus。
  14. 支持插件之间的通信。
  15. 支持插件中使用事务注解。
  16. 支持Swagger。(仅支持首次启动初始化的插件)

扩展功能

SpringBoot-Mybatis扩展包

  1. 支持在插件中自定义Mapper接口、Mapper xml 以及对应的实体bean。

  2. 支持实体bean的别名。

  3. 支持集成Mybatis-Plus。

详见 https://gitee.com/starblues/springboot-plugin-framework-parent/wikis/pages?sort_id=1693493&doc_id=343010

静态资源访问扩展包

  1. 支持通过http访问插件中静态资源。
  2. 详见 插件静态资源访问扩展。

详见 https://gitee.com/starblues/springboot-plugin-framework-parent/wikis/pages?sort_id=1719990&doc_id=343010

 相关资料
  • FIS3 是以 File 对象为中心构建编译的,每一个 File 都要经历编译、打包、发布三个阶段。运行原理讲述了 FIS3 中的插件扩展点;那么本节就将说明一个插件如何开发; 如上图,编译起初,扫描项目目录下的所有文件(不包含指定排除文件),后实例化 File 对象,并对 File 内容进行编译分析; 编译阶段插件 在编译阶段,文件是单文件进行编译的,这个阶段主要是对文件内容的编译分析;这个阶段

  • 插件需要 export 一个函数,函数会接收到两个参数,第一个是 build-scripts 提供的 pluginAPI,第二个是用户传给插件的自定义参数,如下: module.exports = (pluginAPI, options) => { const { context, log, onHook } = pluginAPI; }; pluginAPI

  • 初始化插件 你可以通过 create-umi 直接创建一个 umi 插件的脚手架: $ yarn create umi --plugin 在 umi 中,插件实际上就是一个 JS 模块,你需要定义一个插件的初始化方法并默认导出。如下示例: export default (api, opts) => { // your plugin code here }; 需要注意的是,如果你的插件需要发

  • 插件开发 消费器插件 继承AbstractDataConsumer类 通过spring.factories发布: cn.vbill.middleware.porter.core.task.consumer.DataConsumer=xxx 通过配置文件生效: porter.task[index].consumer.consumerName=pluginName EventConverte

  • 运行开发服务器 npm install npm install -g ykit #依赖 ykit npm run dev #启动开发服务器 加载插件 在config.json plugins配置项,加入 demo 插件, { "port": "3000", "db": { "servername": "127.0.0.1", "DATABASE": "yapi" }

  • QueryList支持安装插件来帮助丰富你的采集功能,目前收录的一些QueryList插件: https://github.com/jae-jae/QueryList-Community 如果大家在使用的过程中有在QueryList的基础上添加一些自己的功能,不妨做成一个QueryList插件,这样可以给其它QueryList使用者提供帮助,并且在其它人的使用反馈中的提升插件的质量。 接下来会以开

  • docsify 提供了一套插件机制,其中提供的钩子(hook)支持处理异步逻辑,可以很方便的扩展功能。 完整功能 window.$docsify = { plugins: [ function(hook, vm) { hook.init(function() { // 初始化完成后调用,只调用一次,没有参数。 }); hook.b

  • 插件脚手架及辅助工具:https://github.com/avwo/lack 插件开发示例参见:https://github.com/whistle-plugins/examples 为了满足一些特定业务场景的需要,whistle提供了插件扩展能力,通过插件可以新增whistle的协议实现更复杂的操作、也可以用来存储或监控指定请求、集成业务本地开发调试环境等等,基本上可以做任何你想做的事情,且开