Springboot集成Springbrick实现动态插件的步骤详解

  • spring-boot集成spring-brick实现动态插件
    • 项目结构 & 需求实现
    • spring-boot集成spring-brick
      • 环境说明
      • 1. 主程序集成spring-brick
      • 2. 准备plugin-api
      • 3. 实现plugin-api
      • 4. 测试验证

spring-boot集成spring-brick实现动态插件

项目结构 & 需求实现

提示:本文的集成说明,是针对完成此设计、此需求进行的

项目结构

demo
│ 
├─application # 主应用
│                  
└─plugin-api
    │  
    ├─plugin-qwer # plugin-qwer-api的实现示例1(注:也可以是单独的一个项目,继承不继承plugin-api均可)
    │                                              
    ├─plugin-qwer2 # plugin-qwer-api的实现示例2(注:也可以是单独的一个项目,继承不继承plugin-api均可)
    │                                          
    ├─plugin-qwer-api  # 插件qwer-api
    │                                          
    ├─plugin-xyz  # plugin-xyz-api的实现示例(注:也可以是单独的一个项目,继承不继承plugin-api均可)
    │                                          
    └─plugin-xyz-api # 插件xyz-api

需求实现

主应用(application)、各个插件的实现(plugin-qwer、plugin-qwer2、plugin-xyz)均可单独启动
主应用(application)启动后,可动态插拔各插件(plugin-qwer、plugin-qwer2、plugin-xyz)
在plugin-api中,定义各种接口、及相关的pojo,这些接口由具体的插件实现去完成,主应用(application)面向plugin-api编程即可

spring-boot集成spring-brick

环境说明
  • spring-boot:2.6.13
  • spring-brick:3.1.1

1. 主程序集成spring-brick
第一步:引入相关依赖
<dependency><groupId>com.gitee.starblues</groupId><artifactId>spring-brick</artifactId><version>3.1.1</version>
</dependency>
第二步:修改程序入口方法
import com.gitee.starblues.loader.launcher.SpringBootstrap;
import com.gitee.starblues.loader.launcher.SpringMainBootstrap;
import com.ideaaedi.commonspring.annotation.EnableParameterRecorder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*** main-application start class*/
@SpringBootApplication
public class MainApplication implements SpringBootstrap {

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

职称继续教育公需课课程答案——国家信息安全等级制度与等级保护

国家信息安全等级制度与等级保护 课程作业 总分&#xff1a;100 及格分数&#xff1a;60 单选题&#xff08;共7题&#xff0c;每题5分&#xff09; 1、《贯彻落实网络安全等级保护制度和关键信息基础设施安全保护制度的指导意见》是以贯彻落实网络安全等级保护制度和关键信…

call和apply和bind区别

相同点&#xff1a;都可以改变this指向 不同点&#xff1a; call和apply是调用函数&#xff0c;bind不是 let result counter.call(null, 5, 10); call和bind参数一样的&#xff0c;而apply是通过数组 let result counter.call(改变this的&#xff0c;第二个参数&#xf…

嵌入式按键处理驱动(easy_button)

简介 在嵌入式裸机开发中&#xff0c;经常有按键的管理需求&#xff0c;GitHub上已经有蛮多成熟的按键驱动了&#xff0c;但是由于这样那样的问题&#xff0c;最终还是自己实现了一套。本项目地址&#xff1a;bobwenstudy/easy_button (github.com)。 项目开发过程中参考了如…

高防服务器的原理是什么?

高防服务器的原理&#xff1a;高防服务器是通过在骨干节点上设置各种防御手段&#xff0c;从而实现无视CC攻击、防御DDOS攻击&#xff0c;且通过过滤假的IP并关掉多余的端口&#xff0c;并在防火墙上做阻止策略&#xff0c;从而防止端口攻击。 1、软件防御主要是利用操作平台上…

YOLOv9训练教程,并解决部分报错问题,必看❗❗❗

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; 文章目录 前言基本操作YAML文件解析注意事项❗❗❗gbk codec cant decode byte 0x80 in position 238: illegal multibyte sequencetrain.py, train_dual.py or train_triple.pyAttributeError: list object has n…

中文文本分类(pytorch 实现)

import torch import torch.nn as nn import torchvision from torchvision import transforms, datasets import os, PIL, pathlib, warningswarnings.filterwarnings("ignore") # 忽略警告信息# win10系统 device torch.device("cuda" if torch.cuda.i…

搭建Facebook直播网络对IP有要求吗?

在当今数字化时代&#xff0c;Facebook直播已经成为了一种极具吸引力的社交形式&#xff0c;为个人和企业提供了与观众直接互动的机会&#xff0c;成为推广产品、分享经验、建立品牌形象的重要途径。然而&#xff0c;对于许多人来说&#xff0c;搭建一个稳定、高质量的Facebook…

java解决统计匹配规则的物品数量

java解决统计匹配规则的物品数量 01 题目 给你一个数组 items &#xff0c;其中 items[i] [typei, colori, namei] &#xff0c;描述第 i 件物品的类型、颜色以及名称。 另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。 如果第 i 件物品能满足下述条件之一…

数字化转型与制造企业绿色创新质量——基于供需双侧机制的再检验(2011-2022年)

参照马红&#xff08;2023&#xff09;的做法&#xff0c;本团队对来自软科学《数字化转型与制造企业绿色创新质量—基于供需双侧机制的再检验》一文中的基准回归部分进行复刻 一、数据介绍 数据名称&#xff1a;数字化转型与制造企业绿色创新质量 参考期刊&#xff1a;《软…

主数据管理是数字化转型成功的基石——江淮汽车案例分享

汽车行业数字化转型的背景 在新冠疫情导火索的影响下&#xff0c;经济全球化政治基础逐渐动摇。作为全球最大的汽车市场&#xff0c;我国的汽车市场逐渐由增量转为存量市场。 在数字化改革大背景下&#xff0c;随着工业4.0时代的到来&#xff0c;江淮汽车集团力争实现十四五数…

【MATLAB】小波 MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 小波MFE_SVM_LSTM神经网络时序预测算法是一种结合了小波变换、多尺度特征提取&#xff08;MFE&#xff09;、支持向量机&#xff08;SVM&#xff09;和长短期记忆神经网络&#xff08;LST…

大幅提升数据库删除性能丨DolphinDB 软删除功能详解

为满足近来用户对某些场景下删除性能的更高要求&#xff0c;我们在2.00.11版本的 DolphinDB Server 中特别支持了软删除的功能。本文作为该功能的使用教程&#xff0c;将详细介绍软删除的实现原理与应用场景&#xff0c;同时提供性能测试案例以供参考。 1. 概述 软删除&#…

[蓝桥杯2018初赛]耐摔指数 (动态规划)

题目描述&#xff1a; x星球的居民脾气不太好&#xff0c;但好在他们生气的时候唯一的异常举动是&#xff1a;摔手机。 各大厂商也就纷纷推出各种耐摔型手机。 x星球的质监局规定了手机必须经过耐摔测试&#xff0c;并且评定出一个耐摔指数来&#xff0c;之后才允许上市流通。 …

C#区域医院云LIS信息管理系统源码 标本管理、两癌筛查、数据分析、试剂管理

目录 ​编辑 区域医院云LIS系统功能亮点&#xff1a; 云LIS系统功能&#xff1a; 一、 基础管理 二、 前处理&#xff08;实验室&#xff09; 三、 标本处理 四、 样本检验 五、 统计报表 六、 质控管理 七、 基本工作流程 区域LIS系统特点&#xff1…

Shell函数

一、Shell函数 1、函数定义 函数定义的语法格式&#xff1a; function function_name() {statements[return int_value] }说明&#xff1a; function是 Shell 中的关键字&#xff0c;专门用来定义函数&#xff1b;function_name是函数名&#xff1b;statements是函数要执行…

台湾香港澳门媒体宣发稿报道有哪些平台资源,跨境出海推广新闻营销公司告诉你

【本篇由言同数字科技有限公司原创】随着全球化的快速发展和互联网的普及&#xff0c;品牌越来越重视海外市场的开拓。作为亚洲地区的重要经济中心&#xff0c;香港、台湾和澳门不仅具有独特的地理位置和文化背景&#xff0c;还拥有丰富的媒体资源。在本文中&#xff0c;我们将…

如何使用程序通过OCR识别解析PDF中的表格

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/ppstructure/table/README_ch.md#41-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B Paddle-structure是目前我们能找到的可以做中英文版面分析较好的一个基础模型&#xff0c;其开源版可以识别十类页面元素。这篇文章介绍…

解决IDEA git 提交慢的问题

文章目录 前言解决IDEA git 提交慢的问题 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&#xff0c;那欢迎常来啊!!! 解…

网络编程(JAVA)

前言&#xff1a;Java 是 Internet 上的语言&#xff0c;它从语言级上提供了对网络应用程序的支持&#xff0c;程序员能够很容易开发常见的网络应用程序。 Java 提供的网络类库&#xff0c;可以实现无痛的网络连接&#xff0c;联网的底层细节被隐藏在 Java 的本机安装系统里&a…

Git 突破 文件尺寸限制

前言 当Git本地存储里右超过50MB&#xff0c;却又确实需要上传的时候&#xff0c;就需要用到了不是 解决 本代码就是把大文件进行拆解成小文件&#xff0c;然后上传。 等到拉取下来的时候&#xff0c;可以直接再进行合并&#xff0c;合并成原文件 代码如下&#xff0c;仅供…