spring-brick 为动态扩展系统而生的插件开发框架

2023-02-08 0 473

背景

在当今社会后端市场,还是以spring-boot为核心理念构架展开控制系统合作开发,本构架能在spring-boot控制系统上展开应用程序式的合作开发,将应用程序当作两个mini版的spring-boot展开控制系统扩充合作开发,可以化解如下表所示关键点:

在To-B控制系统情景中,相同乙方会有相同的市场需求,在不打组成部分和更动控制谢利谢标识符的大前提下,能在应用程序中展开扩充合作开发某一机能,相同乙方采用相同应用程序,轻松化解卡唐翁控制系统的扩充机能合作开发,例如扩充中台控制系统的相同市场需求。在To-C控制系统情景中,能在XI通过表述java-interface,在应用程序中做相同同时实现,来达至静态扩充控制系统机能。在合作开发中,由于导入了相同版的倚赖,导致控制系统无法运行,本构架能完美化解在相同应用程序中表述相同版的倚赖,从下层展开隔绝,以化解导入相同版倚赖武装冲突的难题。比如说能轻松化解控制系统同时相连资料库mysql-5和mysql-8版。在合作开发中,相同应用程序倚赖相同构架的机能,能按需导入。比如说在应用程序A导入相连mysql、在应用程序B导入相连elasticsearch、在应用程序C导入相连oracle。在应用程序中,能任一软件系统相同的非web类型的springboot-xx-starter,然后将相同应用程序机能装配起来,以达至两个统一对内提供服务项目的完备控制系统,同时实现控制系统装配化、适配化合作开发在不重新开启XI的大前提下,对应用程序展开静态的加装、装载、开启、暂停介绍

该构架能在spring-boot工程项目上合作开发出应用程序机能,在应用程序中能和spring-boot采用方式十分相似。采用了本构架您能同时实现如下表所示市场需求:

在应用程序中,您能当做两个小型的spring-boot工程项目来合作开发,简单功能强大。在应用程序中扩充出控制系统各式各样功能点,用于控制系统灵巧扩充,非但不必采用组成部分来交货相同市场需求的工程项目了。在应用程序中能软件系统各式各样构架或其各式各样spring-boot-xxx-starter。在应用程序中能表述分立倚赖包了,非但不必在XI中表述倚赖包了。能轻松化解应用程序包与应用程序包、应用程序包与XI因为同两个构架的相同版武装冲突难题了。各应用程序能表述同两个倚赖的相同版构架。无须重新开启XI,能民主自由同时实现应用程序包的静态加装布署,来静态扩充控制系统的机能。应用程序也能不倚赖XI分立软件系统微服务项目组件。~~~之类,您能丰富想像该构架给您带来什么样急迫的市场需求和扩充,以同时实现控制系统的低谐振、高contained、可扩充的缺点。优点精简了构架的软件系统关键步骤,更容易上手。应用程序合作开发更加切合spring-boot原生植物合作开发。全力支持两种商业模式合作开发:隔绝商业模式、共享资源商业模式, 可分立自主根据需要灵巧选择采用。采用Maven装箱应用程序,全力支持对应用程序的分立自主装箱校对。目前全力支持:合作开发装箱:将应用程序装箱成合作开发环境下的应用程序(仅需打包一次)。生产装箱:将应用程序装箱成两个jar、zip、配置文件等。分立自主的合作开发的类读取器,全力支持应用程序表述各式各样的倚赖jar包。在应用程序中能软件系统各式各样构架或其各式各样Spring-boot-xxx-starter,比如说软件系统mybatis、mybatis-plus、spring-jpa等。静态加装、装载、开启、暂停应用程序。XI和应用程序类隔绝, 有效防止XI与应用程序、应用程序与应用程序之间的类武装冲突。构架

spring-brick 为动态扩展系统而生的插件开发框架

XI配置软件系统1. 导入框架倚赖com.gitee.starbluesspring-brick${latest.version}2. 在配置文件加入配置plugin:runMode: devmainPackage: com.gitee.starblues.examplepluginPath:- D://project//plugins(替换为自己环境下应用程序目录)

配置说明:

runMode: 运行商业模式, 合作开发环境: dev; 生产环境: prod。dev环境下,只适用于在idea环境下合作开发调试,prod环境只能读取装箱的应用程序,比如说jar、zip等,应用程序装箱详见: 应用程序装箱详细说明

mainPackage: XI扫描的包名。

pluginPath: 应用程序目录或者应用程序上级目录,可配置多个。

详细配置见:https://www.yuque.com/starblues/iuyk4y/pm8x4g3. 改造 Spring-Boot 开启类在main类中同时实现构架引导类SpringBootstrap,在run方法中采用和SpringBoot开启方式一致的同时实现。在main方法中采用SpringMainBootstrap展开引导开启。具体同时实现如下表所示:import com.gitee.starblues.loader.launcher.SpringMainBootstrap;import com.gitee.starblues.loader.launcher.Springbootstrap;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application implements SpringBootstrap {public static void main(String[] args) {// 该处采用 SpringMainBootstrap 引导开启SpringMainBootstrap.launch(Application.class, args);@Overridepublic void run(String[] args) throws Exception {// 在该同时实现方法中, 和 SpringBoot 采用方式一致SpringApplication.run(Application.class, args);4. 装箱XIXI采用maven命令:mvn clean install展开装箱应用程序配置软件系统1. 导入倚赖org.springframework.bootspring-boot-starter${和XI一致的springboot版}com.gitee.starbluesspring-brick-bootstrap${latest.version}XI的 groupIdXI的 artifactIdXI versionprovided2. 表述应用程序引导类

注意:应用程序包名不能和XI包名一致,如需一致,需遵循:应用程序包名范围小于等于XI包名。

详细规则可见:https://www.yuque.com/starblues/spring-brick-3.0.0/siet7b

表述应用程序main入口类, 继承SpringPluginBootstrap类, 然后在main函数中实例化当前引导类,并执行run方法即可。同时实现如下表所示:import com.gitee.starblues.bootstrap.SpringPluginBootstrap;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ExamplePlugin extends SpringPluginBootstrap {public static void main(String[] args) {new ExamplePlugin().run(args);3. 配置Maven装箱应用程序采用构架自带的装箱应用程序,对应用程序包进装箱。将如下表所示配置加入到应用程序的maven的 pom.xml 中com.gitee.starbluesspring-brick-maven-packager${latest.version}devplugin-examplecom.gitee.starblues.example.ExamplePlugin1.0.0-SNAPSHOTrepackage详细装箱应用程序说明见: https://www.yuque.com/starblues/iuyk4y/tfxx2b4. 新增 Controller 接口import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping(“/example”)public class ExampleController {@GetMappingpublic String hello(){return “hello”;5. 校对应用程序应用程序采用maven命令:mvn clean package展开校对开启测试开启XImain, 日志中出现如下表所示关键内容,说明软件系统应用程序成功c.g.s.i.operator.DefaultPluginOperator : 应用程序读取环境: devc.g.s.core.PluginLauncherManager : 应用程序[[email protected]]读取成功c.g.s.b.p.web.PluginControllerProcessor : 应用程序[plugin-example]注册接口: {GET [/plugins/module1/example]}c.g.s.core.PluginLauncherManager : 应用程序[[email protected]]开启成功c.g.s.i.operator.DefaultPluginOperator : 应用程序初始化完成打开浏览器,访问接口: http://127.0.0.1:8080/plugins/plugin-example/example 展开测试是否能访问成功。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务