From dadc566748e5f52cc435b40ffa2646e7875dc1c6 Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Sat, 30 Jul 2022 11:59:09 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E9=9A=94?= =?UTF-8?q?=E7=A6=BB=E5=BC=8F=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gitee/starblues/example/Application.java | 6 ++++++ .../starblues/example/rest/HelloController.java | 2 +- example-main/src/main/resources/application-dev.yml | 4 ++-- .../{AutowiredTypeDefiner.xml => MainUserMapper.xml} | 0 .../gitee/starblues/example/basic1/Basic1Plugin.java | 2 ++ .../example/basic1/rest/HelloController.java | 4 ++++ .../example/basic1/service/BasicService.java | 2 ++ .../example/basic1/service/listener/MyListener.java | 5 +++++ .../gitee/starblues/example/basic2/Basic2Plugin.java | 5 ++++- example-plugins-basic/pom.xml | 10 +++++----- .../com/gitee/starblues/example/jpa/JpaPlugin.java | 3 ++- .../example/mp/MybatisPlusExamplePlugin.java | 1 + .../example/mp/rest/MpPluginUserController.java | 9 ++++++++- .../example/mp/service/MpPluginUserService.java | 4 ++++ .../mp/service/impl/MpPluginUserServiceImpl.java | 12 ++++++++++++ pom.xml | 2 +- 16 files changed, 59 insertions(+), 12 deletions(-) rename example-main/src/main/resources/mapper/{AutowiredTypeDefiner.xml => MainUserMapper.xml} (100%) diff --git a/example-main/src/main/java/com/gitee/starblues/example/Application.java b/example-main/src/main/java/com/gitee/starblues/example/Application.java index 47d27e9..c45e564 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/Application.java +++ b/example-main/src/main/java/com/gitee/starblues/example/Application.java @@ -1,5 +1,6 @@ package com.gitee.starblues.example; +import com.gitee.starblues.loader.DevelopmentMode; import com.gitee.starblues.loader.launcher.SpringMainBootstrap; import com.gitee.starblues.loader.launcher.SpringBootstrap; import org.mybatis.spring.annotation.MapperScan; @@ -22,4 +23,9 @@ public class Application implements SpringBootstrap { public void run(String[] args) { SpringApplication.run(Application.class, args); } + + @Override + public DevelopmentMode developmentMode() { + return DevelopmentMode.ISOLATION; + } } diff --git a/example-main/src/main/java/com/gitee/starblues/example/rest/HelloController.java b/example-main/src/main/java/com/gitee/starblues/example/rest/HelloController.java index 5175f62..cf1c62e 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/rest/HelloController.java +++ b/example-main/src/main/java/com/gitee/starblues/example/rest/HelloController.java @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController; * @author starBlues * @version 1.0 */ -@RestController +@RestController("mainHello") @RequestMapping("/main/hello") @Api(tags = "main-hello") public class HelloController { diff --git a/example-main/src/main/resources/application-dev.yml b/example-main/src/main/resources/application-dev.yml index af2aa5e..6393ca4 100644 --- a/example-main/src/main/resources/application-dev.yml +++ b/example-main/src/main/resources/application-dev.yml @@ -27,7 +27,7 @@ plugin: # 如果配置是 windows 下路径, mac、linux 自行修改 pluginPath: - ~\example-plugins-basic - #- ~\example-plugins-db + - ~\example-plugins-db #- ~\example-plugins-cloud sortInitPluginIds: - example-basic-2 @@ -38,4 +38,4 @@ plugin: plugins: - pluginId: example-basic-1 props: - secretKey: mmfvXes1XckCi8F/y9i0uQ== + secretKey: mmfvXes1XckCi8F/y9i0uQ== \ No newline at end of file diff --git a/example-main/src/main/resources/mapper/AutowiredTypeDefiner.xml b/example-main/src/main/resources/mapper/MainUserMapper.xml similarity index 100% rename from example-main/src/main/resources/mapper/AutowiredTypeDefiner.xml rename to example-main/src/main/resources/mapper/MainUserMapper.xml diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/Basic1Plugin.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/Basic1Plugin.java index 9709ee2..8dd5e71 100644 --- a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/Basic1Plugin.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/Basic1Plugin.java @@ -7,6 +7,7 @@ import com.gitee.starblues.bootstrap.realize.AutowiredTypeDefiner; import com.gitee.starblues.example.Application; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.PropertySource; import java.net.URL; @@ -19,6 +20,7 @@ import java.net.URL; */ @SpringBootApplication @OneselfConfig(mainConfigFileName = {"application.yml", "application-dev.yml"}) +@EnableConfigurationProperties public class Basic1Plugin extends SpringPluginBootstrap { public static void main(String[] args) { diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/HelloController.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/HelloController.java index 2d093ae..624c789 100644 --- a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/HelloController.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/HelloController.java @@ -7,6 +7,8 @@ import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; @@ -30,6 +32,8 @@ public class HelloController { @GetMapping() public PluginDescriptor hello(){ + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + System.out.println(attributes.getRequest().getRequestURI()); return pluginDescriptor; } diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/BasicService.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/BasicService.java index 1e51eb3..ca46be8 100644 --- a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/BasicService.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/BasicService.java @@ -5,6 +5,7 @@ import com.gitee.starblues.core.descriptor.PluginDescriptor; import com.gitee.starblues.example.service.MainUserService; import com.gitee.starblues.example.service.TestAnnotation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; @@ -15,6 +16,7 @@ import org.springframework.stereotype.Service; */ @Service @TestAnnotation +@Scope("prototype") public class BasicService { @Autowired diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyListener.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyListener.java index e9a9d2e..ed1e162 100644 --- a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyListener.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyListener.java @@ -1,6 +1,7 @@ package com.gitee.starblues.example.basic1.service.listener; +import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent; import org.springframework.boot.context.event.ApplicationPreparedEvent; import org.springframework.boot.context.event.ApplicationReadyEvent; @@ -10,16 +11,20 @@ import org.springframework.context.event.ContextClosedEvent; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.ContextStartedEvent; import org.springframework.context.event.ContextStoppedEvent; +import org.springframework.stereotype.Component; /** * 启动后监听 * @author starBlues * @version 1.0 */ +@Slf4j +@Component public class MyListener implements ApplicationListener{ @Override public void onApplicationEvent(ApplicationEvent event) { + log.info("插件==================================== : {}" , event.getClass().getName()); if (event instanceof ApplicationEnvironmentPreparedEvent) { System.out.println("初始化环境变量"); } else if (event instanceof ApplicationPreparedEvent) { diff --git a/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/Basic2Plugin.java b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/Basic2Plugin.java index c08b5dc..bbd816b 100644 --- a/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/Basic2Plugin.java +++ b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/Basic2Plugin.java @@ -1,6 +1,8 @@ package com.gitee.starblues.example.basic2; import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import com.gitee.starblues.bootstrap.annotation.OneselfConfig; +import com.gitee.starblues.example.Application; import org.springframework.boot.autoconfigure.SpringBootApplication; /** @@ -10,10 +12,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @since 2021-08-01 */ @SpringBootApplication +@OneselfConfig(mainConfigFileName = {"application.yml", "application-dev.yml"}) public class Basic2Plugin extends SpringPluginBootstrap { public static void main(String[] args) { - new Basic2Plugin().run(args); + new Basic2Plugin().run(Application.class, args); } } diff --git a/example-plugins-basic/pom.xml b/example-plugins-basic/pom.xml index 068a1da..f76940a 100644 --- a/example-plugins-basic/pom.xml +++ b/example-plugins-basic/pom.xml @@ -33,15 +33,15 @@ com.gitee.starblues - spring-brick-bootstrap - ${spring-brick.version} + example-main + ${project.version} + provided com.gitee.starblues - example-main - ${project.version} - provided + spring-brick-bootstrap + ${spring-brick.version} diff --git a/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java index 2b6b58d..12aa1ed 100644 --- a/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java +++ b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java @@ -1,6 +1,7 @@ package com.gitee.starblues.example.jpa; import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import com.gitee.starblues.bootstrap.coexist.CoexistAllowAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; @@ -15,5 +16,5 @@ public class JpaPlugin extends SpringPluginBootstrap{ public static void main(String[] args) { new JpaPlugin().run(JpaPlugin.class, args); } - + } diff --git a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/MybatisPlusExamplePlugin.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/MybatisPlusExamplePlugin.java index 5df193f..f84547b 100644 --- a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/MybatisPlusExamplePlugin.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/MybatisPlusExamplePlugin.java @@ -1,6 +1,7 @@ package com.gitee.starblues.example.mp; import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import com.gitee.starblues.bootstrap.coexist.CoexistAllowAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; /** diff --git a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java index 08936e3..4db21ca 100644 --- a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java @@ -7,6 +7,8 @@ import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * user 接口 @@ -23,12 +25,17 @@ public class MpPluginUserController { private final MpPluginUserService mpPluginUserService; @GetMapping - public Page getPage(@RequestParam("currentPage") Integer currentPage, + public Page getPage(@RequestParam("currentPage") Integer currentPage, @RequestParam("pageSize") Integer pageSize){ Page plugin2UserPage = new Page<>(currentPage, pageSize); return mpPluginUserService.page(plugin2UserPage); } + @GetMapping("/wrapper") + public List getPage(){ + return mpPluginUserService.testWrapper(); + } + @GetMapping("/{id}") public MpPluginUser getById(@PathVariable("id") String id){ diff --git a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java index f983771..e7ed136 100644 --- a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.gitee.starblues.example.mp.entity.MpPluginUser; import com.gitee.starblues.example.mp.mapper.MpPluginUserMapper; +import java.util.List; + /** *

* 插件1-用户表 服务类 @@ -14,6 +16,8 @@ import com.gitee.starblues.example.mp.mapper.MpPluginUserMapper; */ public interface MpPluginUserService extends IService { + List testWrapper(); + @Override MpPluginUserMapper getBaseMapper(); } diff --git a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java index 42e1c98..4b2b918 100644 --- a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java @@ -1,11 +1,16 @@ package com.gitee.starblues.example.mp.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gitee.starblues.bootstrap.annotation.ResolveClassLoader; import com.gitee.starblues.example.mp.entity.MpPluginUser; import com.gitee.starblues.example.mp.mapper.MpPluginUserMapper; import com.gitee.starblues.example.mp.service.MpPluginUserService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 插件1-用户表 服务实现类 @@ -17,4 +22,11 @@ import org.springframework.stereotype.Service; @Service public class MpPluginUserServiceImpl extends ServiceImpl implements MpPluginUserService { + @ResolveClassLoader + @Override + public List testWrapper() { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(MpPluginUser.class) + .eq(MpPluginUser::getDeleted, 0); + return list(wrapper); + } } diff --git a/pom.xml b/pom.xml index 37cb55d..3ac600c 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ 1.8 - 3.0.3 + 3.0.4 2.5.6 -- Gitee From 086134cbc5784ef259aa7cb09bcd526261e6b357 Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Sat, 30 Jul 2022 21:04:21 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/gitee/starblues/example/Application.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example-main/src/main/java/com/gitee/starblues/example/Application.java b/example-main/src/main/java/com/gitee/starblues/example/Application.java index c45e564..2109114 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/Application.java +++ b/example-main/src/main/java/com/gitee/starblues/example/Application.java @@ -25,7 +25,7 @@ public class Application implements SpringBootstrap { } @Override - public DevelopmentMode developmentMode() { + public String developmentMode() { return DevelopmentMode.ISOLATION; } } -- Gitee From 013197a9a0a6e987c2c0f543c2a812d8f9f157fb Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Sat, 27 Aug 2022 14:28:32 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B03.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-prod.yml | 4 +-- example-plugins-basic/example-basic-1/pom.xml | 2 +- .../example/basic1/config/BasicConfig.java | 8 +++++ .../service/Basic1PluginExtensionInfo.java | 29 +++++++++++++++++ .../service/listener/MyCloseListener.java | 32 +++++++++++++++++++ example-plugins-basic/example-basic-2/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Basic1PluginExtensionInfo.java create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java diff --git a/example-main/src/main/resources/application-prod.yml b/example-main/src/main/resources/application-prod.yml index 4781f15..e910a03 100644 --- a/example-main/src/main/resources/application-prod.yml +++ b/example-main/src/main/resources/application-prod.yml @@ -3,7 +3,7 @@ server: spring: datasource: - url: jdbc:mysql://127.0.0.1:3306/plugin-test-example?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC + url: jdbc:mysql://127.0.0.1:3306/plugin-test-example?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC&allowPublicKeyRetrieval=true username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver @@ -23,7 +23,7 @@ mybatis-plus: plugin: runMode: prod mainPackage: com.gitee.starblues.example - pluginPath: ~\plugins + pluginPath: D:\etc\kitte\ksm\springboot-plugin-framework-parent\springboot-plugin-framework-example\dist\plugins sortInitPluginIds: - example-basic-2 - example-basic-1 diff --git a/example-plugins-basic/example-basic-1/pom.xml b/example-plugins-basic/example-basic-1/pom.xml index 02b3d8d..8581773 100644 --- a/example-plugins-basic/example-basic-1/pom.xml +++ b/example-plugins-basic/example-basic-1/pom.xml @@ -29,7 +29,7 @@ basic1-config.yaml - jar-outer + jar diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/BasicConfig.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/BasicConfig.java index 6de824b..3a5f067 100644 --- a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/BasicConfig.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/BasicConfig.java @@ -34,4 +34,12 @@ public class BasicConfig { public void setAge(Integer age) { this.age = age; } + + @Override + public String toString() { + return "BasicConfig{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } } diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Basic1PluginExtensionInfo.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Basic1PluginExtensionInfo.java new file mode 100644 index 0000000..119bdc2 --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Basic1PluginExtensionInfo.java @@ -0,0 +1,29 @@ +package com.gitee.starblues.example.basic1.service; + +import com.gitee.starblues.core.PluginExtensionInfo; +import com.gitee.starblues.example.basic1.config.BasicConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author starBlues + * @version 1.0 + * @since 2021-08-01 + */ +@Component +public class Basic1PluginExtensionInfo implements PluginExtensionInfo { + + @Autowired + private BasicConfig basicConfig; + + @Override + public Map extensionInfo() { + Map map = new HashMap<>(); + map.put("plugin1", "plugin1ExtensionInfo"); + map.put("plugin-config", basicConfig.toString()); + return map; + } +} diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java new file mode 100644 index 0000000..b69f9f4 --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java @@ -0,0 +1,32 @@ +package com.gitee.starblues.example.basic1.service.listener; + +import com.gitee.starblues.bootstrap.realize.PluginCloseListener; +import com.gitee.starblues.core.PluginInfo; +import com.gitee.starblues.core.descriptor.PluginDescriptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.support.GenericApplicationContext; +import org.springframework.stereotype.Component; + +/** + * 插件关闭监听 + * + * @author starBlues + * @version 1.0 + * @date 2022-08-26 + */ +@Component +public class MyCloseListener implements PluginCloseListener { + + @Autowired + private PluginInfo pluginInfo; + + @Override + public void close(GenericApplicationContext applicationContext, PluginInfo pluginInfo, boolean isUninstall) { + if(isUninstall){ + System.out.println("插件被卸载了:" + pluginInfo.getPluginId()); + } else { + System.out.println("插件被关闭了:" + pluginInfo.getPluginId()); + } + System.out.println("注入的插件信息:" + pluginInfo.getExtensionInfo()); + } +} diff --git a/example-plugins-basic/example-basic-2/pom.xml b/example-plugins-basic/example-basic-2/pom.xml index 23d80a5..5129e0e 100644 --- a/example-plugins-basic/example-basic-2/pom.xml +++ b/example-plugins-basic/example-basic-2/pom.xml @@ -28,7 +28,7 @@ basic2-config.yaml - jar + jar-outer diff --git a/pom.xml b/pom.xml index 3ac600c..0ce493f 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ 1.8 - 3.0.4 + 3.1.0 2.5.6 -- Gitee From d3ee89a67ab3159c351781abe6d3301f5b7fff7a Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Sat, 27 Aug 2022 17:42:30 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E6=89=93=E5=8C=85=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example-plugins-basic/example-basic-2/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example-plugins-basic/example-basic-2/pom.xml b/example-plugins-basic/example-basic-2/pom.xml index 5129e0e..23d80a5 100644 --- a/example-plugins-basic/example-basic-2/pom.xml +++ b/example-plugins-basic/example-basic-2/pom.xml @@ -28,7 +28,7 @@ basic2-config.yaml - jar-outer + jar -- Gitee From 818bdba7682be9cb0976d07351dc8d4c48f251e7 Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Sun, 4 Sep 2022 19:37:32 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=96=B0=E5=A2=9Eload=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/rest/PluginResource.java | 20 +++++++++++++++++++ .../src/main/resources/application-prod.yml | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java b/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java index c8c68b3..5b1de35 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java +++ b/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java @@ -56,6 +56,26 @@ public class PluginResource { } + /** + * 加载插件包 + * @param pluginPath 插件路径 + * @return 返回操作结果 + */ + @PostMapping("/load") + public PluginInfo load(@RequestParam("pluginPath") String pluginPath, + @RequestParam(value = "unpackPlugin", required = false) Boolean unpackPlugin){ + try { + if(unpackPlugin == null){ + unpackPlugin = false; + } + return pluginOperator.load(Paths.get(pluginPath), unpackPlugin); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** * 解析插件包 * @param pluginPath 插件路径 diff --git a/example-main/src/main/resources/application-prod.yml b/example-main/src/main/resources/application-prod.yml index e910a03..667c035 100644 --- a/example-main/src/main/resources/application-prod.yml +++ b/example-main/src/main/resources/application-prod.yml @@ -23,7 +23,7 @@ mybatis-plus: plugin: runMode: prod mainPackage: com.gitee.starblues.example - pluginPath: D:\etc\kitte\ksm\springboot-plugin-framework-parent\springboot-plugin-framework-example\dist\plugins + pluginPath: ~/plugins sortInitPluginIds: - example-basic-2 - example-basic-1 -- Gitee From a018fec51b0e9feb6650ecb7b68a044e6031aa84 Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Sat, 17 Sep 2022 10:16:05 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gitee/starblues/example/rest/PluginResource.java | 1 - .../example/basic1/service/listener/MyCloseListener.java | 9 ++++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java b/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java index 5b1de35..a24f7e0 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java +++ b/example-main/src/main/java/com/gitee/starblues/example/rest/PluginResource.java @@ -193,7 +193,6 @@ public class PluginResource { } } - /** * 备份插件。注意: 该操作只适用于生产环境 * @param pluginId 插件id diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java index b69f9f4..2947f83 100644 --- a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyCloseListener.java @@ -1,6 +1,7 @@ package com.gitee.starblues.example.basic1.service.listener; import com.gitee.starblues.bootstrap.realize.PluginCloseListener; +import com.gitee.starblues.core.PluginCloseType; import com.gitee.starblues.core.PluginInfo; import com.gitee.starblues.core.descriptor.PluginDescriptor; import org.springframework.beans.factory.annotation.Autowired; @@ -21,11 +22,13 @@ public class MyCloseListener implements PluginCloseListener { private PluginInfo pluginInfo; @Override - public void close(GenericApplicationContext applicationContext, PluginInfo pluginInfo, boolean isUninstall) { - if(isUninstall){ + public void close(GenericApplicationContext applicationContext, PluginInfo pluginInfo, PluginCloseType closeType) { + if(closeType == PluginCloseType.UNINSTALL){ System.out.println("插件被卸载了:" + pluginInfo.getPluginId()); - } else { + } else if(closeType == PluginCloseType.STOP){ System.out.println("插件被关闭了:" + pluginInfo.getPluginId()); + } else if(closeType == PluginCloseType.UPGRADE_UNINSTALL){ + System.out.println("插件被升级卸载了:" + pluginInfo.getPluginId()); } System.out.println("注入的插件信息:" + pluginInfo.getExtensionInfo()); } -- Gitee