187 Star 1.6K Fork 605

StarBlues / spring-brick

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_zh.md 4.76 KB
一键复制 编辑 原始数据 按行查看 历史

Spring-Boot插件式开发框架

  • 全新3.0.0版本上线啦,为动态扩展系统而生的框架。

背景 | Background

在当下后端市场,还是以spring-boot为核心框架进行系统开发,本框架可以在spring-boot系统上进行插件式的开发,将插件当做一个mini版本的spring-boot进行系统扩展开发,可以解决如下痛点:

  1. To-B系统场景中,不同甲方会有不同的需求,在不打分支和改动系统核心代码的前提下,可以在插件中进行扩展开发特定功能,不同甲方使用不同插件,完美解决非核心系统的扩展功能开发,例如扩展中台系统的不同需求。
  2. To-C系统场景中,可以在主程序通过定义java-interface,在插件中做不同实现,来达到动态扩展系统功能
  3. 在开发中,由于引入了不同版本的依赖,导致系统无法运行,本框架可以完美解决在不同插件中定义不同版本的依赖,从底层进行隔离,以解决引入不同版本依赖冲突的问题。比如可以解决同一个程序同时连接mysql-5mysql-8版本数据库。
  4. 在开发中,不同插件依赖不同框架的功能,可以按需引入。比如在插件A引入连接mysql、在插件B引入连接elasticsearch、在插件C引入连接oracle
  5. 在插件中,可以任意集成不同的非web类型的springboot-xx-starter,然后将不同插件功能组装起来,以达到一个统一对外提供服务的完整系统,实现系统组装化、插拔化开发
  6. 在不重启主程序的前提下,对插件进行动态的安装、卸载、启动、停止

介绍 | Intro

该框架可以在spring-boot项目上开发出插件功能,在插件中可以和spring-boot使用方式一模一样。使用了本框架您可以实现如下需求:

  • 在插件中,您可以当成一个微型的spring-boot项目来开发,简单易用。
  • 在插件中扩展出系统各种功能点,用于系统灵活扩展,再也不用使用分支来交付不同需求的项目了。
  • 在插件中可以集成各种框架及其各种spring-boot-xxx-starter
  • 在插件中可以定义独立依赖包了,再也不用在主程序中定义依赖包了。
  • 可以完美解决插件包与插件包、插件包与主程序因为同一框架的不同版本冲突问题了。各个插件可以定义同一依赖的不同版本框架。
  • 无需重启主程序,可以自由实现插件包的动态安装部署,来动态扩展系统的功能。
  • 插件也可以不依赖主程序独立集成微服务模块。
  • 您可以丰富想象该框架给您带来哪些迫切的需求和扩展,以实现系统的低耦合、高内聚、可扩展的优点。

特性 | Features

  1. 简化了框架的集成步骤,更容易上手。

  2. 插件开发更加贴近spring-boot原生开发。

  3. 支持两种模式开发: 隔离模式共享模式, 可自主根据需要灵活选择使用。

  4. 使用maven打包插件,支持对插件的自主打包编译。目前支持: 开发打包:将插件打包成开发环境下的插件(仅需打包一次)。

    生产打包:将插件打包成一个jarzip文件夹等。

  5. 自主的开发的类加载器,支持插件定义各种的依赖jar包。

  6. 在插件中可以集成各种框架及其各种spring-boot-xxx-starter,比如集成mybatismybatis-plusspring-jpa等。

  7. 动态安装、卸载、启动、停止插件。

  8. 主程序和插件类隔离, 有效避免主程序与插件、插件与插件之间的类冲突。

架构 | Architecture

architecture.png

运行环境 | Runtime Environment

  1. jdk1.8+
  2. apache maven 3.6+
  3. spring-boot 2.3.1 ~ 2.7.6

文档地址 | Document

衍生产品 | Derivatives

携带前后端插件功能的后台管理系统

ETL 工具

案例 | Demo

交流 | Contact

QQ交流群: 859570617(群1, 已满), 536825438(群2)

支持 | Support

如果您觉得框架使用起来不错的, 或者想支持本框架继续维护, 开源不易, 您可以通过如下方式进行支持:

  • 对本框架进行 Star
  • 将本框架 spring-brick 分享给您的朋友
  • 进入 框架首页, 点击捐赠按钮, 请作者吃点零食 捐赠 spring-brick
Java
1
https://gitee.com/starblues/springboot-plugin-framework-parent.git
git@gitee.com:starblues/springboot-plugin-framework-parent.git
starblues
springboot-plugin-framework-parent
spring-brick
master

搜索帮助