diff --git a/README.md b/README.md index 172287cdf95b7a95ad6152a04b1c0b5e8d28e860..30cc388d9bb021b397087da4198d1081d09ba3ad 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,8 @@ The framework can be developed in the `spring-boot` project plugin, plugin can b 5. Self-developed class loader, support plugin definition of a variety of dependent 'jar' packages. 6. Various frameworks and their various `spring-boot-xxx-starter` can be integrated in plugins, such as integration: `mybatis`、`mybatis-plus`、`spring-jpa` etc. +### Architecture +![architecture.png](img/architecture.png) ### Environment 1. jdk1.8+d 2. apache maven 3.6+ diff --git a/README_zh.md b/README_zh.md index b19d744d8a8e70fdef959cfc4ff630f943279157..836db3ebf3998b5567859ab57f900f95839fbe1b 100644 --- a/README_zh.md +++ b/README_zh.md @@ -21,24 +21,23 @@ - 可以完美解决插件包与插件包、插件包与主程序因为同一框架的不同版本冲突问题了。各个插件可以定义同一依赖的不同版本框架。 - 无需重启主程序,可以自由实现插件包的动态安装部署,来动态扩展系统的功能。 - 插件也可以不依赖主程序独立集成微服务模块。 -- 您可以丰富想象该框架给您带来哪些迫切的需求和扩展。 +- 您可以丰富想象该框架给您带来哪些迫切的需求和扩展,以实现系统的**低耦合、高内聚、可扩展**的优点。 +### 架构 | Architecture +![architecture.png](img/architecture.png) ### 特性 | Features 1. 简化了框架的集成步骤,更容易上手。 2. 插件开发更加贴近`spring-boot`原生开发。 -3. 使用`maven`打包插件,支持对插件的自主打包编译。目前支持: - +3. 支持两种模式开发: **隔离模式**、**共享模式**, 可自主根据需要灵活选择使用。 +4. 使用`maven`打包插件,支持对插件的自主打包编译。目前支持: 开发打包:将插件打包成开发环境下的插件(仅需打包一次)。 - - 生产打包:将插件打包成一个`jar`、`zip`、`文件夹`等。 -4. 插件支持两种运行模式 - 插件模式: 作为一个插件,由主程序引导加载。 - - 自主启动模式:单独作为一个`spring-boot`项目来启动。 -5. 自主的开发的类加载器,支持插件定义各种的依赖`jar`包。 -6. 在插件中可以集成各种框架及其各种`spring-boot-xxx-starter`,比如集成`mybatis`、`mybatis-plus`、`spring-jpa`等。 + 生产打包:将插件打包成一个`jar`、`zip`、`文件夹`等。 +6. 自主的开发的类加载器,支持插件定义各种的依赖`jar`包。 +7. 在插件中可以集成各种框架及其各种`spring-boot-xxx-starter`,比如集成`mybatis`、`mybatis-plus`、`spring-jpa`等。 +8. 动态安装、卸载、启动、停止插件。 +9. 主程序和插件类隔离, 有效避免主程序与插件、插件与插件之间的类冲突。 ### 运行环境 | Runtime Environment 1. jdk1.8+ 2. apache maven 3.6+ diff --git a/img/architecture.png b/img/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..8c918f79b62fdbe9e9ce5a3fa00e4a71d6d03bb3 Binary files /dev/null and b/img/architecture.png differ diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java index e4a9a2140740846bc383e5a68de342b196e12b5f..8f75fdd327f11679a95a4f1aba2b244f7a7fff71 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java @@ -11,6 +11,7 @@ public interface Release { /** * 释放资源 + * @throws Exception 释放异常 */ default void release() throws Exception{} diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java index cbf321bb398ce53b84f51920e88972fb513758fd..dbcc89d219c1ebe9d869a6475f37a0bad1dba0d8 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java @@ -1,12 +1,9 @@ package com.gitee.starblues.core.launcher.plugin; -import com.gitee.starblues.core.PluginInsideInfo; import com.gitee.starblues.core.classloader.PluginGeneralUrlClassLoader; -import com.gitee.starblues.core.exception.PluginException; import com.gitee.starblues.core.launcher.plugin.involved.PluginLaunchInvolved; import com.gitee.starblues.loader.classloader.GeneralUrlClassLoader; import com.gitee.starblues.loader.launcher.LauncherContext; -import com.gitee.starblues.spring.SpringPluginHook; import lombok.extern.slf4j.Slf4j; /** diff --git a/update.md b/update.md index 9ac1b24f33171b67fa917d68e53d2b05fcddc2fb..34a5d56781725dd870c469c7ab60ab74141c4121 100644 --- a/update.md +++ b/update.md @@ -4,5 +4,4 @@ 4. 【新增】插件的日志可配置为跟随主程序日志配置打印。 5. 【新增】补充常见打包的 `META-INF\MANIFEST.MF` 文件内容。 6. 【优化】优化插件隔离模式下,内存占用过大的问题。 -7. 【修复[#I61INH](https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I61INH)】修复`PluginUser#getBean(String name, boolean includeMainBeans)`返回的`Bean`错误 - \ No newline at end of file +7. 【修复[#I61INH](https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I61INH)】修复`PluginUser#getBean(String name, boolean includeMainBeans)`返回的`Bean`错误 \ No newline at end of file