From 459d9a789f4d180fb79be11e21e631d80b101e16 Mon Sep 17 00:00:00 2001 From: KingStar Date: Sun, 6 Mar 2022 13:02:50 +0000 Subject: [PATCH] update to 3.0.0 update to 3.0.0 --- README.md | 36 +---- example-main/pom.xml | 123 ++++++++++-------- .../gitee/starblues/example/Application.java | 11 +- .../example/config/PluginConfig.java | 87 +++++++------ .../example/config/Swagger2Config.java | 5 +- .../listener/MyPluginInitializerListener.java | 26 ++++ .../example/listener/MyPluginListener.java | 61 +++++++++ .../example/listener/Pf4jPluginListener.java | 21 --- .../example/plugin/ExtractExample.java | 48 ------- .../example/rest/ExtractController.java | 51 ++++++-- .../example/rest/PluginResource.java | 92 ++++++------- .../example/rest/PluginUserController.java | 69 +++++++--- .../starblues/example/service/MainSender.java | 16 +++ .../starblues/example/service/Sender.java | 22 ++++ .../example/service/TestAnnotation.java | 16 +++ .../example/service/extract/ExtractDemo.java | 16 +++ .../service/extract/MainExtractImpl.java | 17 +++ .../src/main/resources/application-dev.yml | 18 ++- .../src/main/resources/application-prod.yml | 15 ++- example-plugins-basic/example-basic-1/pom.xml | 48 +++++++ .../example/basic1/Basic1Plugin.java | 26 ++++ .../example/basic1}/aop/TestAdvice.java | 2 +- .../example/basic1/config/BasicConfig.java | 37 ++++++ .../example/basic1}/config/EnableAop.java | 2 +- .../interceptor/Basic1HandlerInterceptor.java | 21 +++ .../Basic1InterceptorRegister.java | 23 ++++ .../example/basic1/rest/CallerController.java | 68 ++++++++++ .../example/basic1/rest/HelloController.java | 47 +++++++ .../basic1/rest/MainUserController.java | 31 +---- .../basic1}/rest/ThymeleafController.java | 9 +- .../example/basic1}/service/BasicService.java | 11 +- .../basic1/service/Example1Sender.java | 16 +++ .../example/basic1/service/ExtractBasic1.java | 19 +++ .../example/basic1/service/ServiceCaller.java | 43 ++++++ .../basic1/service/listener/MyListener.java | 35 +++++ .../src/main/resources/basic1-config-dev.yaml | 3 + .../src/main/resources/basic1-config.yaml | 8 +- .../resources/plugin1-template/index.html | 0 .../src/main/resources/static/css/all.css | 0 .../src/main/resources/static/image/image.png | Bin .../src/main/resources/static/index.html | 0 example-plugins-basic/example-basic-2/pom.xml | 46 +++++++ .../example/basic2/Basic2Plugin.java | 19 +++ .../example/basic2/HelloController.java | 38 ++++++ .../example/basic2/config/Basic2Config.java | 37 ++++-- .../basic2/service/Example2Sender.java | 16 +++ .../example/basic2/service/ExtractBasic2.java | 13 +- .../example/basic2/service/ServiceSupper.java | 73 +++++++++++ .../src/main/resources/basic2-config-dev.yaml | 3 + .../src/main/resources/basic2-config.yaml | 3 + .../pom.xml | 54 +++++++- .../example-plugin-cloud-nacos/pom.xml | 83 ++++++++++++ .../cloud/nacos/CloudNacosPlugin.java | 18 +++ .../starblues/cloud/nacos/NacosRegister.java | 23 ++++ .../nacos/config/NacosConfigExample.java | 25 ++++ .../controller/NacosConfigController.java | 27 ++++ .../src/main/resources/cloud-nacos.yaml | 11 ++ .../pom.xml | 73 ++++++++--- example-plugins-db/example-jpa/pom.xml | 91 +++++++++++++ .../starblues/example/jpa/JpaPlugin.java | 19 +++ .../example/jpa/config/QuartzJobConfig.java | 0 .../jpa/config/prop/QuartzJobProp.java | 0 .../example/jpa/dao/PluginJpaUserDao.java | 0 .../example/jpa/entity/PluginJpaUser.java | 0 .../jpa/rest/JpaPluginUserResource.java | 2 +- .../example/jpa/service/package-info.java | 0 .../jpa/service/quartz/DatabaseInsertJob.java | 0 .../src/main/resources/jpa-dev.yml | 5 + .../src/main/resources/jpa-prod.yml | 0 .../example-jpa/src/main/resources/jpa.yml | 3 + .../src/main/resources/plugin.properties | 8 ++ .../example-mybatis-plus/pom.xml | 54 ++++++++ .../gitee/starblues/example/mp/DbStop.java | 23 ++++ .../example/mp/MybatisPlusExamplePlugin.java | 17 +++ .../example/mp/entity/MpPluginUser.java | 7 +- .../example/mp/mapper/MpPluginUserMapper.java | 8 +- .../mp/rest/MpPluginUserController.java | 30 ++--- .../mp/service/MpPluginUserService.java | 10 +- .../service/impl/MpPluginUserServiceImpl.java | 10 +- .../resources/mapper/MpPluginUserMapper.xml | 9 +- .../src/main/resources/mp-config.yaml | 13 ++ .../pom.xml | 32 ++++- example-plugins-dir1/example-basic/pom.xml | 15 --- .../starblues/example/basic/BasicPlugin.java | 16 --- .../src/main/resources/plugin.properties | 5 - example-plugins-dir1/example-jpa/pom.xml | 16 --- .../starblues/example/jpa/JpaPlugin.java | 18 --- .../example/jpa/config/PluginJpaConfig.java | 27 ---- .../jpa/extract/ExtractExampleImp1.java | 19 --- .../src/main/resources/plugin.properties | 5 - example-plugins-dir2/example-plugin1/pom.xml | 17 --- .../example/plugin1/ExamplePlugin1.java | 16 --- .../plugin1/config/MybatisPlusConfig.java | 72 ---------- .../plugin1/config/QuartzJobConfig.java | 49 ------- .../plugin1/extract/ExtractExampleImp2.java | 19 --- .../listener/ClearUserDataListener.java | 41 ------ .../plugin1/service/impl/ExtractExample2.java | 19 --- .../service/quartz/DatabaseInsertJob.java | 54 -------- .../src/main/resources/plugin.properties | 7 - .../src/main/resources/plugin1-dev.yml | 16 --- .../src/main/resources/plugin1-log.xml | 11 -- .../src/main/resources/plugin1-prod.yml | 18 --- example-plugins-dir2/example-plugin2/pom.xml | 16 --- .../example/plugin2/ExamplePlugin2.java | 16 --- .../plugin2/config/MybatisPlusConfig.java | 60 --------- .../example/plugin2/entity/Plugin2User.java | 107 --------------- .../plugin2/extract/ExtractExampleImp3.java | 19 --- .../plugin2/mapper/Plugin2UserMapper.java | 20 --- .../plugin2/rest/Plugin2UserResource.java | 40 ------ .../plugin2/service/Plugin2UserService.java | 17 --- .../plugin2/service/impl/ExtractExample3.java | 19 --- .../service/impl/Plugin2UserServiceImpl.java | 20 --- .../src/main/resources/plugin.properties | 7 - .../src/main/resources/plugin2-dev.yml | 6 - .../plugin2-mapper/Plugin2UserMapper.xml | 30 ----- .../src/main/resources/plugin2-prod.yml | 6 - package.bat | 25 ++-- pom.xml | 29 ++++- sql/plugin-test-example.sql | 36 +---- 119 files changed, 1724 insertions(+), 1311 deletions(-) create mode 100644 example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginInitializerListener.java create mode 100644 example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginListener.java delete mode 100644 example-main/src/main/java/com/gitee/starblues/example/listener/Pf4jPluginListener.java delete mode 100644 example-main/src/main/java/com/gitee/starblues/example/plugin/ExtractExample.java create mode 100644 example-main/src/main/java/com/gitee/starblues/example/service/MainSender.java create mode 100644 example-main/src/main/java/com/gitee/starblues/example/service/Sender.java create mode 100644 example-main/src/main/java/com/gitee/starblues/example/service/TestAnnotation.java create mode 100644 example-main/src/main/java/com/gitee/starblues/example/service/extract/ExtractDemo.java create mode 100644 example-main/src/main/java/com/gitee/starblues/example/service/extract/MainExtractImpl.java create mode 100644 example-plugins-basic/example-basic-1/pom.xml create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/Basic1Plugin.java rename {example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic => example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1}/aop/TestAdvice.java (97%) create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/BasicConfig.java rename {example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic => example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1}/config/EnableAop.java (83%) create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1HandlerInterceptor.java create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1InterceptorRegister.java create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/CallerController.java create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/HelloController.java rename example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/rest/HelloResource.java => example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/MainUserController.java (48%) rename {example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1 => example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1}/rest/ThymeleafController.java (71%) rename {example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic => example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1}/service/BasicService.java (39%) create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Example1Sender.java create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ExtractBasic1.java create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ServiceCaller.java create mode 100644 example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyListener.java create mode 100644 example-plugins-basic/example-basic-1/src/main/resources/basic1-config-dev.yaml rename example-plugins-dir2/example-plugin1/src/main/resources/plugin1-thymeleaf.yml => example-plugins-basic/example-basic-1/src/main/resources/basic1-config.yaml (51%) rename {example-plugins-dir2/example-plugin1 => example-plugins-basic/example-basic-1}/src/main/resources/plugin1-template/index.html (100%) rename {example-plugins-dir2/example-plugin1 => example-plugins-basic/example-basic-1}/src/main/resources/static/css/all.css (100%) rename {example-plugins-dir2/example-plugin1 => example-plugins-basic/example-basic-1}/src/main/resources/static/image/image.png (100%) rename {example-plugins-dir2/example-plugin1 => example-plugins-basic/example-basic-1}/src/main/resources/static/index.html (100%) create mode 100644 example-plugins-basic/example-basic-2/pom.xml create mode 100644 example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/Basic2Plugin.java create mode 100644 example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/HelloController.java rename example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/prop/QuartzJobProp.java => example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/config/Basic2Config.java (32%) create mode 100644 example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/Example2Sender.java rename example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/service/ExtractExample1.java => example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ExtractBasic2.java (30%) create mode 100644 example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ServiceSupper.java create mode 100644 example-plugins-basic/example-basic-2/src/main/resources/basic2-config-dev.yaml create mode 100644 example-plugins-basic/example-basic-2/src/main/resources/basic2-config.yaml rename {example-plugins-dir2 => example-plugins-basic}/pom.xml (38%) create mode 100644 example-plugins-cloud/example-plugin-cloud-nacos/pom.xml create mode 100644 example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/CloudNacosPlugin.java create mode 100644 example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/NacosRegister.java create mode 100644 example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/config/NacosConfigExample.java create mode 100644 example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/controller/NacosConfigController.java create mode 100644 example-plugins-cloud/example-plugin-cloud-nacos/src/main/resources/cloud-nacos.yaml rename {example-plugin-dependency => example-plugins-cloud}/pom.xml (33%) create mode 100644 example-plugins-db/example-jpa/pom.xml create mode 100644 example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/QuartzJobConfig.java (100%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/prop/QuartzJobProp.java (100%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/java/com/gitee/starblues/example/jpa/dao/PluginJpaUserDao.java (100%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/java/com/gitee/starblues/example/jpa/entity/PluginJpaUser.java (100%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/java/com/gitee/starblues/example/jpa/rest/JpaPluginUserResource.java (96%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/package-info.java (100%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/quartz/DatabaseInsertJob.java (100%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/resources/jpa-dev.yml (91%) rename {example-plugins-dir1 => example-plugins-db}/example-jpa/src/main/resources/jpa-prod.yml (100%) create mode 100644 example-plugins-db/example-jpa/src/main/resources/jpa.yml create mode 100644 example-plugins-db/example-jpa/src/main/resources/plugin.properties create mode 100644 example-plugins-db/example-mybatis-plus/pom.xml create mode 100644 example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/DbStop.java create mode 100644 example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/MybatisPlusExamplePlugin.java rename example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/entity/Plugin1User.java => example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/entity/MpPluginUser.java (94%) rename example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/mapper/Plugin1UserMapper.java => example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/mapper/MpPluginUserMapper.java (49%) rename example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/rest/Plugin1UserResource.java => example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java (32%) rename example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/Plugin1UserService.java => example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java (37%) rename example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/Plugin1UserServiceImpl.java => example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java (38%) rename example-plugins-dir2/example-plugin1/src/main/resources/plugin1-mapper/Plugin1UserMapper.xml => example-plugins-db/example-mybatis-plus/src/main/resources/mapper/MpPluginUserMapper.xml (88%) create mode 100644 example-plugins-db/example-mybatis-plus/src/main/resources/mp-config.yaml rename {example-plugins-dir1 => example-plugins-db}/pom.xml (56%) delete mode 100644 example-plugins-dir1/example-basic/pom.xml delete mode 100644 example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/BasicPlugin.java delete mode 100644 example-plugins-dir1/example-basic/src/main/resources/plugin.properties delete mode 100644 example-plugins-dir1/example-jpa/pom.xml delete mode 100644 example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java delete mode 100644 example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/PluginJpaConfig.java delete mode 100644 example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/extract/ExtractExampleImp1.java delete mode 100644 example-plugins-dir1/example-jpa/src/main/resources/plugin.properties delete mode 100644 example-plugins-dir2/example-plugin1/pom.xml delete mode 100644 example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/ExamplePlugin1.java delete mode 100644 example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/MybatisPlusConfig.java delete mode 100644 example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/QuartzJobConfig.java delete mode 100644 example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/extract/ExtractExampleImp2.java delete mode 100644 example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/listener/ClearUserDataListener.java delete mode 100644 example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/ExtractExample2.java delete mode 100644 example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/quartz/DatabaseInsertJob.java delete mode 100644 example-plugins-dir2/example-plugin1/src/main/resources/plugin.properties delete mode 100644 example-plugins-dir2/example-plugin1/src/main/resources/plugin1-dev.yml delete mode 100644 example-plugins-dir2/example-plugin1/src/main/resources/plugin1-log.xml delete mode 100644 example-plugins-dir2/example-plugin1/src/main/resources/plugin1-prod.yml delete mode 100644 example-plugins-dir2/example-plugin2/pom.xml delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/ExamplePlugin2.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/config/MybatisPlusConfig.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/entity/Plugin2User.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/extract/ExtractExampleImp3.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/mapper/Plugin2UserMapper.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/rest/Plugin2UserResource.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/Plugin2UserService.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/ExtractExample3.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/Plugin2UserServiceImpl.java delete mode 100644 example-plugins-dir2/example-plugin2/src/main/resources/plugin.properties delete mode 100644 example-plugins-dir2/example-plugin2/src/main/resources/plugin2-dev.yml delete mode 100644 example-plugins-dir2/example-plugin2/src/main/resources/plugin2-mapper/Plugin2UserMapper.xml delete mode 100644 example-plugins-dir2/example-plugin2/src/main/resources/plugin2-prod.yml diff --git a/README.md b/README.md index c37772f..9578a38 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,7 @@ # springboot-plugin-framework-example #### 介绍 -springboot-plugin-framework 功能测试+案例 +`springboot-plugin-framework` 功能测试+案例 -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +#### 对应版本号 +`3.0.0-alpha` \ No newline at end of file diff --git a/example-main/pom.xml b/example-main/pom.xml index c648ea1..844c56e 100644 --- a/example-main/pom.xml +++ b/example-main/pom.xml @@ -16,11 +16,11 @@ 1.8 - 2.4.5-RELEASE + 3.0.0-alpha - 2.5.0 + 2.5.6 - 3.4.2 + 3.5.0 2.2 @@ -45,27 +45,6 @@ ${springboot-plugin-framework.version} - - - com.gitee.starblues - springboot-plugin-framework-extension-mybatis - ${springboot-plugin-framework.version} - - - - - com.gitee.starblues - springboot-plugin-framework-extension-resources - ${springboot-plugin-framework.version} - - - - - com.gitee.starblues - springboot-plugin-framework-extension-log - ${springboot-plugin-framework.version} - - org.springframework.boot spring-boot-starter-web @@ -114,11 +93,9 @@ test - - com.gitee.starblues - example-plugin-dependency - ${project.version} + org.springframework.boot + spring-boot-starter-aop @@ -130,43 +107,79 @@ + - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 + com.gitee.starblues + springboot-plugin-maven-packager + ${springboot-plugin-framework.version} - - - true - lib/ - false - com.gitee.starblues.example.Application - - - ./ - - + main + + + com.gitee.starblues.example.Application + - - - org.apache.maven.plugins - maven-dependency-plugin - 3.2.0 - copy - package - copy-dependencies + repackage - - - ${project.build.directory}/lib - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 0c4ca24..c486222 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,9 +1,10 @@ package com.gitee.starblues.example; +import com.gitee.starblues.loader.launcher.SpringMainBootstrap; +import com.gitee.starblues.loader.launcher.SpringBootstrap; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ConfigurableApplicationContext; /** * @author starBlues @@ -11,10 +12,14 @@ import org.springframework.context.ConfigurableApplicationContext; */ @SpringBootApplication @MapperScan("com.gitee.starblues.example.mapper") -public class Application { +public class Application implements SpringBootstrap { public static void main(String[] args) { - SpringApplication.run(Application.class, args); + SpringMainBootstrap.launch(Application.class, args); } + @Override + public void run(String[] args) throws Exception { + SpringApplication.run(Application.class, args); + } } diff --git a/example-main/src/main/java/com/gitee/starblues/example/config/PluginConfig.java b/example-main/src/main/java/com/gitee/starblues/example/config/PluginConfig.java index 0bd5438..1953b61 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/config/PluginConfig.java +++ b/example-main/src/main/java/com/gitee/starblues/example/config/PluginConfig.java @@ -1,41 +1,46 @@ -package com.gitee.starblues.example.config; - -import com.gitee.starblues.example.listener.Pf4jPluginListener; -import com.gitee.starblues.extension.log.SpringBootLogExtension; -import com.gitee.starblues.extension.mybatis.SpringBootMybatisExtension; -import com.gitee.starblues.extension.resources.StaticResourceExtension; -import com.gitee.starblues.integration.AutoIntegrationConfiguration; -import com.gitee.starblues.integration.application.AutoPluginApplication; -import com.gitee.starblues.integration.application.PluginApplication; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; - -/** - * 插件配置 - * @author starBlues - * @version 1.0 - */ -@Configuration -@Import(AutoIntegrationConfiguration.class) -public class PluginConfig { - - /** - * 定义插件应用。使用可以注入它操作插件。 - * @return PluginApplication - */ - @Bean - public PluginApplication pluginApplication(){ - // 实例化自动初始化插件的PluginApplication - PluginApplication pluginApplication = new AutoPluginApplication(); - pluginApplication.addPf4jStateListener(Pf4jPluginListener.class); - // 新增mybatis-plus扩展 - pluginApplication - .addExtension(new SpringBootMybatisExtension(SpringBootMybatisExtension.Type.MYBATIS_PLUS)) - .addExtension(new SpringBootLogExtension(SpringBootLogExtension.Type.LOGBACK)) - .addExtension(new StaticResourceExtension(StaticResourceExtension.Include.THYMELEAF)); - - return pluginApplication; - } - -} +//package com.gitee.starblues.example.config; +// +//import com.gitee.starblues.loader.classloader.DefaultMainResourcePatternDefiner; +//import com.gitee.starblues.core.classloader.EmptyMainResourcePatternDefiner; +//import com.gitee.starblues.core.classloader.MainResourcePatternDefiner; +//import com.gitee.starblues.example.listener.Pf4jPluginListener; +//import com.gitee.starblues.extension.log.SpringBootLogExtension; +//import com.gitee.starblues.extension.mybatis.SpringBootMybatisExtension; +//import com.gitee.starblues.extension.resources.StaticResourceExtension; +//import com.gitee.starblues.integration.AutoIntegrationConfiguration; +//import com.gitee.starblues.integration.IntegrationConfiguration; +//import com.gitee.starblues.integration.application.AutoPluginApplication; +//import com.gitee.starblues.integration.application.PluginApplication; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.context.annotation.Import; +// +///** +// * 插件配置 +// * @author starBlues +// * @version 1.0 +// */ +//@Configuration +////@Import(AutoIntegrationConfiguration.class) +//public class PluginConfig { +// +// /** +// * 定义插件应用。使用可以注入它操作插件。 +// * @return PluginApplication +// */ +//// @Bean +//// public PluginApplication pluginApplication(){ +//// // 实例化自动初始化插件的PluginApplication +//// PluginApplication pluginApplication = new AutoPluginApplication(); +//// pluginApplication.addPf4jStateListener(Pf4jPluginListener.class); +//// // 新增mybatis-plus扩展 +//// pluginApplication +//// .addExtension(new SpringBootMybatisExtension(SpringBootMybatisExtension.Type.MYBATIS_PLUS)) +//// .addExtension(new SpringBootLogExtension(SpringBootLogExtension.Type.LOGBACK)) +//// .addExtension(new StaticResourceExtension(StaticResourceExtension.Include.THYMELEAF)); +//// +//// return pluginApplication; +//// } +// +//} diff --git a/example-main/src/main/java/com/gitee/starblues/example/config/Swagger2Config.java b/example-main/src/main/java/com/gitee/starblues/example/config/Swagger2Config.java index 8e18b85..974aae8 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/config/Swagger2Config.java +++ b/example-main/src/main/java/com/gitee/starblues/example/config/Swagger2Config.java @@ -29,17 +29,14 @@ public class Swagger2Config { @Bean(value = "defaultApi2") public Docket defaultApi2() { - Predicate predicate = PathSelectors.any(); - - Docket docket = new Docket(DocumentationType.SWAGGER_2) + return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("dev") .select() .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .paths(predicate) .build(); - return docket; } private ApiInfo apiInfo() { diff --git a/example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginInitializerListener.java b/example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginInitializerListener.java new file mode 100644 index 0000000..5a9719c --- /dev/null +++ b/example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginInitializerListener.java @@ -0,0 +1,26 @@ +package com.gitee.starblues.example.listener; + +import com.gitee.starblues.integration.listener.PluginInitializerListener; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +public class MyPluginInitializerListener implements PluginInitializerListener { + @Override + public void before() { + System.out.println("初始化之前"); + } + + @Override + public void complete() { + System.out.println("初始化完成"); + } + + @Override + public void failure(Throwable throwable) { + System.out.println("初始化失败:"+throwable.getMessage()); + } +} diff --git a/example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginListener.java b/example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginListener.java new file mode 100644 index 0000000..2091536 --- /dev/null +++ b/example-main/src/main/java/com/gitee/starblues/example/listener/MyPluginListener.java @@ -0,0 +1,61 @@ +package com.gitee.starblues.example.listener; + +import com.gitee.starblues.core.PluginInfo; +import com.gitee.starblues.example.service.TestAnnotation; +import com.gitee.starblues.integration.listener.PluginListener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.nio.file.Path; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +@TestAnnotation +public class MyPluginListener implements PluginListener { + + private static final Logger log = LoggerFactory.getLogger(MyPluginListener.class); + + @Override + public void loadSuccess(PluginInfo pluginInfo) { + log.info("插件[{}]加载成功.", pluginInfo.getPluginId()); + } + + @Override + public void loadFailure(Path path, Throwable throwable) { + log.info("插件[{}]加载失败. {}", path, throwable.getMessage()); + } + + @Override + public void unLoadSuccess(PluginInfo pluginInfo) { + log.info("插件[{}]卸载成功", pluginInfo.getPluginId()); + } + + @Override + public void unLoadFailure(PluginInfo pluginInfo, Throwable throwable) { + log.info("插件[{}]卸载失败. {}", pluginInfo.getPluginId(), throwable.getMessage()); + } + + @Override + public void startSuccess(PluginInfo pluginInfo) { + log.info("插件[{}]启动成功", pluginInfo.getPluginId()); + } + + @Override + public void startFailure(PluginInfo pluginInfo, Throwable throwable) { + log.info("插件[{}]启动失败. {}", pluginInfo.getPluginId(), throwable.getMessage()); + } + + @Override + public void stopSuccess(PluginInfo pluginInfo) { + log.info("插件[{}]停止成功", pluginInfo.getPluginId()); + } + + @Override + public void stopFailure(PluginInfo pluginInfo, Throwable throwable) { + log.info("插件[{}]停止失败. {}", pluginInfo.getPluginId(), throwable.getMessage()); + } +} diff --git a/example-main/src/main/java/com/gitee/starblues/example/listener/Pf4jPluginListener.java b/example-main/src/main/java/com/gitee/starblues/example/listener/Pf4jPluginListener.java deleted file mode 100644 index 97602b6..0000000 --- a/example-main/src/main/java/com/gitee/starblues/example/listener/Pf4jPluginListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gitee.starblues.example.listener; - -import lombok.extern.slf4j.Slf4j; -import org.pf4j.PluginState; -import org.pf4j.PluginStateEvent; -import org.pf4j.PluginStateListener; - -/** - * pf4j 插件监听器 - * @author starBlues - * @version 1.0 - * @since 2021-07-24 - */ -@Slf4j -public class Pf4jPluginListener implements PluginStateListener { - @Override - public void pluginStateChanged(PluginStateEvent event) { - PluginState pluginState = event.getPluginState(); - log.info("Plugin {} {}", event.getPlugin().getPluginId(), pluginState.toString()); - } -} diff --git a/example-main/src/main/java/com/gitee/starblues/example/plugin/ExtractExample.java b/example-main/src/main/java/com/gitee/starblues/example/plugin/ExtractExample.java deleted file mode 100644 index 9d37440..0000000 --- a/example-main/src/main/java/com/gitee/starblues/example/plugin/ExtractExample.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gitee.starblues.example.plugin; - -/** - * 扩展功能案例 - * @author starBlues - * @version 1.0 - * @since 2021-07-24 - */ -public interface ExtractExample { - - /** - * 扩展实现 - * @param info info - * @return info - */ - Info exeInfo(Info info); - - class Info{ - private String name; - private Integer age; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getAge() { - return age; - } - - public void setAge(Integer age) { - this.age = age; - } - - @Override - public String toString() { - return "Info{" + - "name='" + name + '\'' + - ", age=" + age + - '}'; - } - } - - -} diff --git a/example-main/src/main/java/com/gitee/starblues/example/rest/ExtractController.java b/example-main/src/main/java/com/gitee/starblues/example/rest/ExtractController.java index f6940cf..8512bb8 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/rest/ExtractController.java +++ b/example-main/src/main/java/com/gitee/starblues/example/rest/ExtractController.java @@ -1,11 +1,16 @@ package com.gitee.starblues.example.rest; -import com.gitee.starblues.example.plugin.ExtractExample; -import com.gitee.starblues.factory.process.pipe.extract.ExtractCoordinate; -import com.gitee.starblues.factory.process.pipe.extract.ExtractFactory; +import com.gitee.starblues.example.service.extract.ExtractDemo; +import com.gitee.starblues.spring.extract.ExtractCoordinate; +import com.gitee.starblues.spring.extract.ExtractFactory; +import com.gitee.starblues.utils.ObjectUtils; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.stream.Collectors; + /** * @author starBlues * @version 1.0 @@ -13,20 +18,40 @@ import org.springframework.web.bind.annotation.*; */ @RestController @RequestMapping("/extract") -@Api +@Api(tags = "main-extract") public class ExtractController { - private final ExtractFactory extractFactory = ExtractFactory.getInstant(); + @Autowired + private ExtractFactory extractFactory; + + @GetMapping("/getExtractByCoordinate") + public String getExtractImpl(@RequestParam("bus") String bus, + @RequestParam(value = "scene", required = false) String scene, + @RequestParam(value = "useCase", required = false) String useCase){ + ExtractDemo extract = extractFactory.getExtractByCoordinate(ExtractCoordinate.build(bus, scene, useCase)); + return extract.getName(); + } + + @GetMapping("/getExtractByInterClass") + public List getExtractByInterClass(@RequestParam(value = "pluginId", required = false) String pluginId){ + List extractByInterClass = null; + if(ObjectUtils.isEmpty(pluginId)){ + extractByInterClass = extractFactory.getExtractByInterClass(ExtractDemo.class); + } else { + extractByInterClass = extractFactory.getExtractByInterClass(pluginId, ExtractDemo.class); + } + return extractByInterClass.stream() + .map(ExtractDemo::getName) + .collect(Collectors.toList()); + } - @GetMapping() - public ExtractExample.Info getExtractImpl(@RequestParam("bus") String bus, - @RequestParam(value = "scene", required = false) String scene, - @RequestParam(value = "useCase", required = false) String useCase){ - ExtractExample extractExample = extractFactory.getExtractByCoordinate( - ExtractCoordinate.build(bus, scene, useCase)); - ExtractExample.Info info = new ExtractExample.Info(); - return extractExample.exeInfo(info); + @GetMapping("/getExtractByInterClassOfMain") + public List getExtractByInterClassOfMain(){ + List extractByInterClass = extractFactory.getExtractByInterClassOfMain(ExtractDemo.class); + return extractByInterClass.stream() + .map(ExtractDemo::getName) + .collect(Collectors.toList()); } 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 c22a55c..c8c68b3 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 @@ -1,16 +1,17 @@ package com.gitee.starblues.example.rest; +import com.gitee.starblues.core.PluginInfo; import com.gitee.starblues.integration.application.PluginApplication; import com.gitee.starblues.integration.operator.PluginOperator; -import com.gitee.starblues.integration.operator.module.PluginInfo; +import com.gitee.starblues.integration.operator.upload.UploadParam; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; -import java.util.Set; /** * 插件jar 包测试功能 @@ -19,16 +20,12 @@ import java.util.Set; */ @RestController @RequestMapping("/plugin") -@Api +@Api(tags = "main-plugin-operator") public class PluginResource { - private final PluginOperator pluginOperator; - @Autowired - public PluginResource(PluginApplication pluginApplication) { - this.pluginOperator = pluginApplication.getPluginOperator(); - } + private PluginOperator pluginOperator; /** * 获取插件信息 @@ -40,20 +37,40 @@ public class PluginResource { } /** - * 获取插件jar文件名 - * @return 获取插件文件名。只在生产环境显示 + * 校验插件包 + * @param pluginPath 插件路径 + * @return 返回操作结果 */ - @GetMapping("/files") - public Set getPluginFilePaths(){ + @PostMapping("/verify") + public String verify(@RequestParam("pluginPath") String pluginPath){ try { - return pluginOperator.getPluginFilePaths(); + if(pluginOperator.verify(Paths.get(pluginPath))){ + return "verify success"; + } else { + return "verify failure"; + } } catch (Exception e) { e.printStackTrace(); - return null; + return "verify failure." + e.getMessage(); } } + /** + * 解析插件包 + * @param pluginPath 插件路径 + * @return 返回操作结果 + */ + @PostMapping("/parse") + public PluginInfo parse(@RequestParam("pluginPath") String pluginPath){ + try { + return pluginOperator.parse(Paths.get(pluginPath)); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + /** * 根据插件id停止插件 * @param id 插件id @@ -101,11 +118,8 @@ public class PluginResource { @PostMapping("/uninstall/{id}") public String uninstall(@PathVariable("id") String id){ try { - if(pluginOperator.uninstall(id, true)){ - return "plugin '" + id +"' uninstall success"; - } else { - return "plugin '" + id +"' uninstall failure"; - } + pluginOperator.uninstall(id, true, true); + return "plugin '" + id +"' uninstall success"; } catch (Exception e) { e.printStackTrace(); return "plugin '" + id +"' uninstall failure. " + e.getMessage(); @@ -119,9 +133,10 @@ public class PluginResource { * @return 操作结果 */ @PostMapping("/installByPath") - public String install(@RequestParam("path") String path){ + public String install(@RequestParam("path") String path, + @RequestParam(value = "unpackPlugin", defaultValue = "false", required = false) Boolean unpackPlugin){ try { - PluginInfo pluginInfo = pluginOperator.install(Paths.get(path)); + PluginInfo pluginInfo = pluginOperator.install(Paths.get(path), unpackPlugin); if(pluginInfo != null){ return "installByPath success"; } else { @@ -139,10 +154,14 @@ public class PluginResource { * @param multipartFile 上传文件 multipartFile * @return 操作结果 */ - @PostMapping("/uploadInstallPluginJar") - public String install(@RequestParam("jarFile") MultipartFile multipartFile){ + @PostMapping("/upload") + public String upload(@RequestParam("jarFile") MultipartFile multipartFile){ try { - PluginInfo pluginInfo = pluginOperator.uploadPluginAndStart(multipartFile); + UploadParam uploadParam = UploadParam.byMultipartFile(multipartFile) + .setBackOldPlugin(true) + .setStartPlugin(true) + .setUnpackPlugin(false); + PluginInfo pluginInfo = pluginOperator.uploadPlugin(uploadParam); if(pluginInfo != null){ return "install success"; } else { @@ -155,26 +174,6 @@ public class PluginResource { } - /** - * 上传插件的配置文件。注意: 该操作只适用于生产环境 - * @param multipartFile 上传文件 multipartFile - * @return 操作结果 - */ - @PostMapping("/uploadPluginConfigFile") - public String uploadConfig(@RequestParam("configFile") MultipartFile multipartFile){ - try { - if(pluginOperator.uploadConfigFile(multipartFile)){ - return "uploadConfig success"; - } else { - return "uploadConfig failure"; - } - } catch (Exception e) { - e.printStackTrace(); - return "uploadConfig failure : " + e.getMessage(); - } - } - - /** * 备份插件。注意: 该操作只适用于生产环境 * @param pluginId 插件id @@ -183,8 +182,9 @@ public class PluginResource { @PostMapping("/back/{pluginId}") public String backupPlugin(@PathVariable("pluginId") String pluginId){ try { - if(pluginOperator.backupPlugin(pluginId, "testBack")){ - return "backupPlugin success"; + Path path = pluginOperator.backupPlugin(pluginId, "testBack"); + if(path != null){ + return "backupPlugin success: " + path; } else { return "backupPlugin failure"; } diff --git a/example-main/src/main/java/com/gitee/starblues/example/rest/PluginUserController.java b/example-main/src/main/java/com/gitee/starblues/example/rest/PluginUserController.java index b09afe6..d892c6d 100644 --- a/example-main/src/main/java/com/gitee/starblues/example/rest/PluginUserController.java +++ b/example-main/src/main/java/com/gitee/starblues/example/rest/PluginUserController.java @@ -1,15 +1,19 @@ package com.gitee.starblues.example.rest; +import com.gitee.starblues.example.service.MainSender; +import com.gitee.starblues.example.service.Sender; +import com.gitee.starblues.example.service.TestAnnotation; import com.gitee.starblues.integration.application.PluginApplication; +import com.gitee.starblues.integration.user.BeanWrapper; import com.gitee.starblues.integration.user.PluginUser; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; /** @@ -19,27 +23,60 @@ import java.util.stream.Collectors; */ @RestController @RequestMapping("/plugin-user") -@Api +@Api(tags = "main-plugin-user") public class PluginUserController { - private final PluginApplication pluginApplication; + @Autowired + private PluginUser pluginUser; - public PluginUserController(PluginApplication pluginApplication) { - this.pluginApplication = pluginApplication; + @GetMapping("/bean-names") + public BeanWrapper> getBeanName(){ + return pluginUser.getBeanName(true); } + @GetMapping("/name") + public Object getBean(@RequestParam("name") String name, + @RequestParam("includeMainBeans") Boolean includeMainBeans){ + return pluginUser.getBean(name, includeMainBeans); + } + + @GetMapping("/name-by-plugin") + public Object getBean(@RequestParam("pluginId") String pluginId, + @RequestParam("name") String name){ + return pluginUser.getBean(pluginId, name); + } + + @GetMapping("/by-interface") + public BeanWrapper> getBeanByInterface(@RequestParam("includeMainBeans") Boolean includeMainBeans){ + return pluginUser.getBeanByInterface(Sender.class, includeMainBeans); + } + + @GetMapping("/by-interface-error") + public String getBeanByInterfaceError(){ + try { + pluginUser.getBeanByInterface(MainSender.class, true); + return "ok"; + } catch (Exception e){ + return e.getMessage(); + } + } + + @GetMapping("/interface-of-plugin") + public List getBeanByInterface(@RequestParam("pluginId") String pluginId){ + List senders = pluginUser.getBeanByInterface(pluginId, Sender.class); + return senders.stream().map(o -> o.getName().getName()).collect(Collectors.toList()); + } + + @GetMapping("/with-annotation") - public List getObjectWithAnnotation(){ - PluginUser pluginUser = pluginApplication.getPluginUser(); - List objects = pluginUser.getPluginBeansWithAnnotation(Component.class); - return objects.stream().map(o -> o.getClass().getName()).collect(Collectors.toList()); + public BeanWrapper> getObjectWithAnnotation(@RequestParam("includeMainBeans") Boolean includeMainBeans){ + return pluginUser.getBeansWithAnnotation(TestAnnotation.class, includeMainBeans); } - @GetMapping("/with-annotation/{pluginId}") - public List getObjectWithAnnotationByPluginId(@PathVariable("pluginId") String pluginId){ - PluginUser pluginUser = pluginApplication.getPluginUser(); - List objects = pluginUser.getPluginBeansWithAnnotation(pluginId, Component.class); + @GetMapping("/with-annotation-of-plugin") + public List getObjectWithAnnotationByPluginId(@RequestParam("pluginId") String pluginId){ + List objects = pluginUser.getBeansWithAnnotation(pluginId, TestAnnotation.class); return objects.stream().map(o -> o.getClass().getName()).collect(Collectors.toList()); } diff --git a/example-main/src/main/java/com/gitee/starblues/example/service/MainSender.java b/example-main/src/main/java/com/gitee/starblues/example/service/MainSender.java new file mode 100644 index 0000000..1199525 --- /dev/null +++ b/example-main/src/main/java/com/gitee/starblues/example/service/MainSender.java @@ -0,0 +1,16 @@ +package com.gitee.starblues.example.service; + +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +@TestAnnotation +public class MainSender implements Sender{ + @Override + public Name getName() { + return new Name(this.getClass().getName()); + } +} diff --git a/example-main/src/main/java/com/gitee/starblues/example/service/Sender.java b/example-main/src/main/java/com/gitee/starblues/example/service/Sender.java new file mode 100644 index 0000000..d7052f3 --- /dev/null +++ b/example-main/src/main/java/com/gitee/starblues/example/service/Sender.java @@ -0,0 +1,22 @@ +package com.gitee.starblues.example.service; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; + +/** + * @author starBlues + * @version 1.0 + */ +public interface Sender { + + Name getName(); + + @AllArgsConstructor + @Getter + class Name{ + private String name; + } + + +} diff --git a/example-main/src/main/java/com/gitee/starblues/example/service/TestAnnotation.java b/example-main/src/main/java/com/gitee/starblues/example/service/TestAnnotation.java new file mode 100644 index 0000000..8b46c8e --- /dev/null +++ b/example-main/src/main/java/com/gitee/starblues/example/service/TestAnnotation.java @@ -0,0 +1,16 @@ +package com.gitee.starblues.example.service; + +import java.lang.annotation.*; + +/** + * 测试注解 + * @author starBlues + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface TestAnnotation { + + + +} diff --git a/example-main/src/main/java/com/gitee/starblues/example/service/extract/ExtractDemo.java b/example-main/src/main/java/com/gitee/starblues/example/service/extract/ExtractDemo.java new file mode 100644 index 0000000..7ef10dc --- /dev/null +++ b/example-main/src/main/java/com/gitee/starblues/example/service/extract/ExtractDemo.java @@ -0,0 +1,16 @@ +package com.gitee.starblues.example.service.extract; + +/** + * 扩展接口 + * @author starBlues + * @version 1.0 + */ +public interface ExtractDemo { + + /** + * getName + * @return String + */ + String getName(); + +} diff --git a/example-main/src/main/java/com/gitee/starblues/example/service/extract/MainExtractImpl.java b/example-main/src/main/java/com/gitee/starblues/example/service/extract/MainExtractImpl.java new file mode 100644 index 0000000..7c0c66a --- /dev/null +++ b/example-main/src/main/java/com/gitee/starblues/example/service/extract/MainExtractImpl.java @@ -0,0 +1,17 @@ +package com.gitee.starblues.example.service.extract; + +import com.gitee.starblues.annotation.Extract; +import com.gitee.starblues.example.service.TestAnnotation; + +/** + * @author starBlues + * @version 1.0 + */ +@Extract(bus = "extract", scene = "demo", useCase = "main", order = Integer.MAX_VALUE) +@TestAnnotation +public class MainExtractImpl implements ExtractDemo{ + @Override + public String getName() { + return "mainExtractImpl"; + } +} diff --git a/example-main/src/main/resources/application-dev.yml b/example-main/src/main/resources/application-dev.yml index 5643ca7..f0aa6b8 100644 --- a/example-main/src/main/resources/application-dev.yml +++ b/example-main/src/main/resources/application-dev.yml @@ -7,6 +7,12 @@ spring: username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver + servlet: + multipart: + enabled: true + max-request-size: 100MB + max-file-size: 100MB + file-size-threshold: 20MB mybatis-plus: typeAliasesPackage: com.gitee.starblues.example.entity @@ -17,10 +23,10 @@ mybatis-plus: plugin: runMode: dev + mainPackage: com.gitee.starblues.example + # 如果配置是 windows 下路径, mac、linux 自行修改 pluginPath: - - ./example-plugins-dir1/ - - ./example-plugins-dir2/ - sortInitPluginIds: - - example-plugin1 - - example-plugin2 - - example-jpa + - ~\example-plugins-basic + - ~\example-plugins-db + # ~\example-plugins-cloud + diff --git a/example-main/src/main/resources/application-prod.yml b/example-main/src/main/resources/application-prod.yml index affa867..5aa290d 100644 --- a/example-main/src/main/resources/application-prod.yml +++ b/example-main/src/main/resources/application-prod.yml @@ -7,7 +7,12 @@ spring: username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver - + servlet: + multipart: + enabled: true + max-request-size: 100MB + max-file-size: 100MB + file-size-threshold: 20MB mybatis-plus: typeAliasesPackage: com.gitee.starblues.example.entity mapperLocations: classpath*:mapper/*.xml @@ -17,9 +22,5 @@ mybatis-plus: plugin: runMode: prod - pluginPath: plugins - pluginConfigFilePath: plugin-configs - sortInitPluginIds: - - example-plugin1 - - example-plugin2 - - example-jpa + mainPackage: com.gitee.starblues.example + pluginPath: ~\plugins diff --git a/example-plugins-basic/example-basic-1/pom.xml b/example-plugins-basic/example-basic-1/pom.xml new file mode 100644 index 0000000..c47d0f7 --- /dev/null +++ b/example-plugins-basic/example-basic-1/pom.xml @@ -0,0 +1,48 @@ + + + + example-plugins-basic + com.gitee.starblues + 1.0.0-SNAPSHOT + + 4.0.0 + + example-basic-1 + jar + + + + + + + com.gitee.starblues + springboot-plugin-maven-packager + + ${plugin.build.mode} + + example-basic-1 + com.gitee.starblues.example.basic1.Basic1Plugin + 1.0.0-SNAPSHOT + starBlues + 基本插件1 + basic1-config.yaml + + + jar + + + + + + repackage + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..86e313b --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/Basic1Plugin.java @@ -0,0 +1,26 @@ +package com.gitee.starblues.example.basic1; + +import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import com.gitee.starblues.bootstrap.annotation.DisablePluginWeb; +import com.gitee.starblues.bootstrap.annotation.OneselfConfig; +import com.gitee.starblues.example.Application; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration; +import org.springframework.context.annotation.PropertySource; + +import java.net.URL; + +/** + * 基本插件 + * @author starBlues + * @version 1.0 + * @since 2021-08-01 + */ +@SpringBootApplication +public class Basic1Plugin extends SpringPluginBootstrap { + + public static void main(String[] args) { + new Basic1Plugin().run(Application.class, args); + } + +} diff --git a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/aop/TestAdvice.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/aop/TestAdvice.java similarity index 97% rename from example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/aop/TestAdvice.java rename to example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/aop/TestAdvice.java index 4d8cb54..7e07d8d 100644 --- a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/aop/TestAdvice.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/aop/TestAdvice.java @@ -1,4 +1,4 @@ -package com.gitee.starblues.example.basic.aop; +package com.gitee.starblues.example.basic1.aop; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; 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 new file mode 100644 index 0000000..6de824b --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/BasicConfig.java @@ -0,0 +1,37 @@ +package com.gitee.starblues.example.basic1.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +@ConfigurationProperties(prefix = "basic") +public class BasicConfig { + + @Value("${name:basic}") + private String name; + + @Value("${age:12}") + private Integer age; + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } +} diff --git a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/config/EnableAop.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/EnableAop.java similarity index 83% rename from example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/config/EnableAop.java rename to example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/EnableAop.java index 0065f48..5b49d67 100644 --- a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/config/EnableAop.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/config/EnableAop.java @@ -1,4 +1,4 @@ -package com.gitee.starblues.example.basic.config; +package com.gitee.starblues.example.basic1.config; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1HandlerInterceptor.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1HandlerInterceptor.java new file mode 100644 index 0000000..edc850d --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1HandlerInterceptor.java @@ -0,0 +1,21 @@ +package com.gitee.starblues.example.basic1.interceptor; + +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +public class Basic1HandlerInterceptor implements HandlerInterceptor { + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + System.out.println("进入插件Basic1HandlerInterceptor拦截器"); + } +} diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1InterceptorRegister.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1InterceptorRegister.java new file mode 100644 index 0000000..e15d0dd --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/interceptor/Basic1InterceptorRegister.java @@ -0,0 +1,23 @@ +package com.gitee.starblues.example.basic1.interceptor; + +import com.gitee.starblues.bootstrap.processor.interceptor.PluginInterceptorRegister; +import com.gitee.starblues.bootstrap.processor.interceptor.PluginInterceptorRegistry; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +public class Basic1InterceptorRegister implements PluginInterceptorRegister { + + @Autowired + private Basic1HandlerInterceptor basic1HandlerInterceptor; + + @Override + public void registry(PluginInterceptorRegistry registry) { + registry.addInterceptor(basic1HandlerInterceptor, PluginInterceptorRegistry.Type.PLUGIN) + .addPathPatterns("/**"); + } +} diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/CallerController.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/CallerController.java new file mode 100644 index 0000000..df35f5b --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/CallerController.java @@ -0,0 +1,68 @@ +package com.gitee.starblues.example.basic1.rest; + +import com.gitee.starblues.example.basic1.config.BasicConfig; +import com.gitee.starblues.example.basic1.service.ServiceCaller; +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 javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author starBlues + * @version 1.0 + */ +@RestController +@RequestMapping("/caller") +@Api(tags = "basic1-plugin-caller") +public class CallerController { + + @Resource + private ServiceCaller serviceCaller; + + @GetMapping("/test") + public BasicConfig caller(){ + String hello = serviceCaller.hello("hello, i am basic"); + System.out.println(hello); + return serviceCaller.getConfig("hi, i am basic1"); + } + + @GetMapping("/test-param") + public ServiceCaller.R testParam(){ + List params = new ArrayList<>(); + params.add(get("1", 1, null)); + params.add(get("2", 2, null)); + ServiceCaller.Param param = get("name", 16, params); + return serviceCaller.param(param); + } + + @GetMapping("/test-param-list") + public ServiceCaller.R testParamList(){ + List params = new ArrayList<>(); + params.add(get("1", 1, null)); + params.add(get("2", 2, null)); + return serviceCaller.paramList(params); + } + + @GetMapping("/test-param-map") + public ServiceCaller.R testParamMap(){ + Map params = new HashMap<>(); + params.put("1", get("1", 1, null)); + params.put("2", get("2", 2, null)); + return serviceCaller.paramMap(params); + } + + private ServiceCaller.Param get(String name, Integer age, List params){ + ServiceCaller.Param param = new ServiceCaller.Param(); + param.setName("123"); + param.setAge(16); + param.setParams(params); + return param; + } + +} 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 new file mode 100644 index 0000000..2d093ae --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/HelloController.java @@ -0,0 +1,47 @@ +package com.gitee.starblues.example.basic1.rest; + +import com.gitee.starblues.core.descriptor.PluginDescriptor; +import com.gitee.starblues.example.basic1.config.BasicConfig; +import com.gitee.starblues.example.basic1.service.BasicService; +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 javax.annotation.Resource; + +/** + * @author starBlues + * @version 1.0 + * @since 2021-08-01 + */ +@RestController +@RequestMapping("/hello") +@Api(tags = "basic1-plugin-hello") +public class HelloController { + + @Resource + private BasicService basicService; + @Resource + private BasicConfig basicConfig; + @Resource + private PluginDescriptor pluginDescriptor; + + + @GetMapping() + public PluginDescriptor hello(){ + return pluginDescriptor; + } + + @GetMapping("/name") + public String getName(){ + return basicService.getName(); + } + + + @GetMapping("/config") + public BasicConfig getConfig(){ + return basicConfig; + } + +} diff --git a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/rest/HelloResource.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/MainUserController.java similarity index 48% rename from example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/rest/HelloResource.java rename to example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/MainUserController.java index 566fd8c..9ebc02a 100644 --- a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/rest/HelloResource.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/MainUserController.java @@ -1,9 +1,7 @@ -package com.gitee.starblues.example.basic.rest; +package com.gitee.starblues.example.basic1.rest; -import com.gitee.starblues.example.basic.service.BasicService; import com.gitee.starblues.example.entity.MainUser; import com.gitee.starblues.example.service.MainUserService; -import com.gitee.starblues.realize.PluginUtils; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -18,34 +16,17 @@ import java.util.List; * @since 2021-08-01 */ @RestController -@RequestMapping("/hello") -@Api -public class HelloResource { +@RequestMapping("/main") +@Api(tags = "basic1-plugin-caller-main") +public class MainUserController { @Autowired - private BasicService basicService; + private MainUserService mainUserService; - @Autowired - private PluginUtils pluginUtils; - - @GetMapping("/name") - public String getName(){ - return basicService.getName(); - } @GetMapping("/main-user") public List mainUser(){ - MainUserService mainBean = pluginUtils.getMainBean(MainUserService.class); - return mainBean.list(); + return mainUserService.list(); } - - @GetMapping() - public String hello(){ - return "hello, my name is basic plugin."; - } - - - - } diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/rest/ThymeleafController.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/ThymeleafController.java similarity index 71% rename from example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/rest/ThymeleafController.java rename to example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/ThymeleafController.java index c4df75a..a0762b7 100644 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/rest/ThymeleafController.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/rest/ThymeleafController.java @@ -1,9 +1,6 @@ -package com.gitee.starblues.example.plugin1.rest; +package com.gitee.starblues.example.basic1.rest; -import com.gitee.starblues.realize.ConfigDefinitionTip; import io.swagger.annotations.Api; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @@ -16,9 +13,9 @@ import java.util.UUID; * @author starBlues * @version 2.3.0 */ -@Controller() +@Controller @RequestMapping("/thy") -@Api +@Api(tags = "basic1-olugin-thymeleaf") public class ThymeleafController { @GetMapping() diff --git a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/service/BasicService.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/BasicService.java similarity index 39% rename from example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/service/BasicService.java rename to example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/BasicService.java index 685e510..23c63fb 100644 --- a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/service/BasicService.java +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/BasicService.java @@ -1,6 +1,10 @@ -package com.gitee.starblues.example.basic.service; +package com.gitee.starblues.example.basic1.service; +import com.gitee.starblues.core.descriptor.PluginDescriptor; +import com.gitee.starblues.example.service.TestAnnotation; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; /** * @author starBlues @@ -8,8 +12,13 @@ import org.springframework.stereotype.Component; * @since 2021-08-01 */ @Component +@Service +@TestAnnotation public class BasicService { + @Autowired + private PluginDescriptor pluginDescriptor; + public String getName(){ return BasicService.class.getName(); } diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Example1Sender.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Example1Sender.java new file mode 100644 index 0000000..6ef5c91 --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/Example1Sender.java @@ -0,0 +1,16 @@ +package com.gitee.starblues.example.basic1.service; + +import com.gitee.starblues.example.service.Sender; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +public class Example1Sender implements Sender { + @Override + public Name getName() { + return new Name(Example1Sender.class.getName()); + } +} diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ExtractBasic1.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ExtractBasic1.java new file mode 100644 index 0000000..508c1d8 --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ExtractBasic1.java @@ -0,0 +1,19 @@ +package com.gitee.starblues.example.basic1.service; + +import com.gitee.starblues.annotation.Extract; +import com.gitee.starblues.example.service.TestAnnotation; +import com.gitee.starblues.example.service.extract.ExtractDemo; + +/** + * @author starBlues + * @version 1.0 + * @since 2021-08-01 + */ +@Extract(bus = "extract", scene = "demo", order = 10) +@TestAnnotation +public class ExtractBasic1 implements ExtractDemo { + @Override + public String getName() { + return "extractBasic1"; + } +} diff --git a/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ServiceCaller.java b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ServiceCaller.java new file mode 100644 index 0000000..a6c8f32 --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/ServiceCaller.java @@ -0,0 +1,43 @@ +package com.gitee.starblues.example.basic1.service; + +import com.gitee.starblues.annotation.Caller; +import com.gitee.starblues.example.basic1.config.BasicConfig; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * @author starBlues + * @version 1.0 + */ +@Caller("service-supper") +public interface ServiceCaller { + + @Caller.Method("hello") + String hello(String s); + + @Caller.Method("getConfig") + BasicConfig getConfig(String name); + + R param(Param param); + + R paramList(List params); + + R paramMap(Map params); + + + @Data + class Param{ + private String name; + private Integer age; + private List params; + } + + @Data + class R{ + String name; + } + + +} 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 new file mode 100644 index 0000000..e9a9d2e --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/java/com/gitee/starblues/example/basic1/service/listener/MyListener.java @@ -0,0 +1,35 @@ +package com.gitee.starblues.example.basic1.service.listener; + + +import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent; +import org.springframework.boot.context.event.ApplicationPreparedEvent; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextClosedEvent; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.context.event.ContextStartedEvent; +import org.springframework.context.event.ContextStoppedEvent; + +/** + * 启动后监听 + * @author starBlues + * @version 1.0 + */ +public class MyListener implements ApplicationListener{ + + @Override + public void onApplicationEvent(ApplicationEvent event) { + if (event instanceof ApplicationEnvironmentPreparedEvent) { + System.out.println("初始化环境变量"); + } else if (event instanceof ApplicationPreparedEvent) { + System.out.println("环境初始化完成"); + } else if (event instanceof ContextRefreshedEvent) { + System.out.println("ApplicationContext被刷新"); + } else if (event instanceof ApplicationReadyEvent) { + System.out.println("插件已经启动完成"); + } else if (event instanceof ContextClosedEvent) { + System.out.println("插件停止"); + } + } +} diff --git a/example-plugins-basic/example-basic-1/src/main/resources/basic1-config-dev.yaml b/example-plugins-basic/example-basic-1/src/main/resources/basic1-config-dev.yaml new file mode 100644 index 0000000..9132294 --- /dev/null +++ b/example-plugins-basic/example-basic-1/src/main/resources/basic1-config-dev.yaml @@ -0,0 +1,3 @@ +basic: + name: I'm the plugin example basic1 + age: 16 \ No newline at end of file diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-thymeleaf.yml b/example-plugins-basic/example-basic-1/src/main/resources/basic1-config.yaml similarity index 51% rename from example-plugins-dir2/example-plugin1/src/main/resources/plugin1-thymeleaf.yml rename to example-plugins-basic/example-basic-1/src/main/resources/basic1-config.yaml index 82f459c..fb8dd33 100644 --- a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-thymeleaf.yml +++ b/example-plugins-basic/example-basic-1/src/main/resources/basic1-config.yaml @@ -1,8 +1,10 @@ -plugin: - # 插件thymeleaf配置 +spring: + profiles: + active: dev + resources: + static-locations: classpath:static thymeleaf: prefix: plugin1-template suffix: .html mode: html encoding: utf-8 - diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-template/index.html b/example-plugins-basic/example-basic-1/src/main/resources/plugin1-template/index.html similarity index 100% rename from example-plugins-dir2/example-plugin1/src/main/resources/plugin1-template/index.html rename to example-plugins-basic/example-basic-1/src/main/resources/plugin1-template/index.html diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/static/css/all.css b/example-plugins-basic/example-basic-1/src/main/resources/static/css/all.css similarity index 100% rename from example-plugins-dir2/example-plugin1/src/main/resources/static/css/all.css rename to example-plugins-basic/example-basic-1/src/main/resources/static/css/all.css diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/static/image/image.png b/example-plugins-basic/example-basic-1/src/main/resources/static/image/image.png similarity index 100% rename from example-plugins-dir2/example-plugin1/src/main/resources/static/image/image.png rename to example-plugins-basic/example-basic-1/src/main/resources/static/image/image.png diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/static/index.html b/example-plugins-basic/example-basic-1/src/main/resources/static/index.html similarity index 100% rename from example-plugins-dir2/example-plugin1/src/main/resources/static/index.html rename to example-plugins-basic/example-basic-1/src/main/resources/static/index.html diff --git a/example-plugins-basic/example-basic-2/pom.xml b/example-plugins-basic/example-basic-2/pom.xml new file mode 100644 index 0000000..dbdad7a --- /dev/null +++ b/example-plugins-basic/example-basic-2/pom.xml @@ -0,0 +1,46 @@ + + + + example-plugins-basic + com.gitee.starblues + 1.0.0-SNAPSHOT + + 4.0.0 + + example-basic-2 + jar + + + + + + com.gitee.starblues + springboot-plugin-maven-packager + + ${plugin.build.mode} + + example-basic-2 + com.gitee.starblues.example.basic2.Basic2Plugin + 1.0.0-SNAPSHOT + starBlues + 基本插件2 + basic2-config.yaml + + + jar + + + + + + repackage + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..c08b5dc --- /dev/null +++ b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/Basic2Plugin.java @@ -0,0 +1,19 @@ +package com.gitee.starblues.example.basic2; + +import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 基本插件 + * @author starBlues + * @version 1.0 + * @since 2021-08-01 + */ +@SpringBootApplication +public class Basic2Plugin extends SpringPluginBootstrap { + + public static void main(String[] args) { + new Basic2Plugin().run(args); + } + +} diff --git a/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/HelloController.java b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/HelloController.java new file mode 100644 index 0000000..61b398d --- /dev/null +++ b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/HelloController.java @@ -0,0 +1,38 @@ +package com.gitee.starblues.example.basic2; + +import com.gitee.starblues.core.descriptor.PluginDescriptor; +import com.gitee.starblues.example.basic2.config.Basic2Config; +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 javax.annotation.Resource; + +/** + * @author starBlues + * @version 1.0 + * @since 2021-08-01 + */ +@RestController +@RequestMapping("/hello") +@Api(tags = "basic2-plugin-hello-example") +public class HelloController { + + @Resource + private Basic2Config basicConfig; + @Resource + private PluginDescriptor pluginDescriptor; + + + @GetMapping() + public PluginDescriptor hello(){ + return pluginDescriptor; + } + + @GetMapping("/config") + public Basic2Config getConfig(){ + return basicConfig; + } + +} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/prop/QuartzJobProp.java b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/config/Basic2Config.java similarity index 32% rename from example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/prop/QuartzJobProp.java rename to example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/config/Basic2Config.java index a7245de..b0b9ce5 100644 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/prop/QuartzJobProp.java +++ b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/config/Basic2Config.java @@ -1,25 +1,38 @@ -package com.gitee.starblues.example.plugin1.config.prop; +package com.gitee.starblues.example.basic2.config; -import lombok.Data; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** - * quartz 的job配置 * @author starBlues - * @version 2.4.3 + * @version 1.0 */ @Component -@ConfigurationProperties(prefix = "job") -@Data -public class QuartzJobProp { +@ConfigurationProperties("basic") +public class Basic2Config { - @Value("${databaseInsertJobCron:*/20 * * * * ?}") - private String databaseInsertJobCron; + @Value("${name:basic}") + private String name; - @Value("${databaseInsertJobDelaySec:0}") - private Long databaseInsertJobDelaySec; + @Value("${age:12}") + private Integer age; + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } } diff --git a/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/Example2Sender.java b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/Example2Sender.java new file mode 100644 index 0000000..1a5a745 --- /dev/null +++ b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/Example2Sender.java @@ -0,0 +1,16 @@ +package com.gitee.starblues.example.basic2.service; + +import com.gitee.starblues.example.service.Sender; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +public class Example2Sender implements Sender { + @Override + public Sender.Name getName() { + return new Sender.Name(Example2Sender.class.getName()); + } +} diff --git a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/service/ExtractExample1.java b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ExtractBasic2.java similarity index 30% rename from example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/service/ExtractExample1.java rename to example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ExtractBasic2.java index 06aa953..319df99 100644 --- a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/service/ExtractExample1.java +++ b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ExtractBasic2.java @@ -1,18 +1,17 @@ -package com.gitee.starblues.example.basic.service; +package com.gitee.starblues.example.basic2.service; import com.gitee.starblues.annotation.Extract; -import com.gitee.starblues.example.plugin.ExtractExample; +import com.gitee.starblues.example.service.extract.ExtractDemo; /** * @author starBlues * @version 1.0 * @since 2021-08-01 */ -@Extract(bus = "PluginExtract1", order = 0) -public class ExtractExample1 implements ExtractExample { +@Extract(bus = "extract", scene = "demo", order = 0) +public class ExtractBasic2 implements ExtractDemo { @Override - public Info exeInfo(Info info) { - info.setName("ExtractExample1"); - return info; + public String getName() { + return "extractBasic2"; } } diff --git a/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ServiceSupper.java b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ServiceSupper.java new file mode 100644 index 0000000..1116116 --- /dev/null +++ b/example-plugins-basic/example-basic-2/src/main/java/com/gitee/starblues/example/basic2/service/ServiceSupper.java @@ -0,0 +1,73 @@ +package com.gitee.starblues.example.basic2.service; + +import com.gitee.starblues.annotation.Supplier; +import com.gitee.starblues.example.basic2.config.Basic2Config; +import com.gitee.starblues.example.service.TestAnnotation; +import lombok.Data; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; +import java.util.Map; + +/** + * @author starBlues + * @version 1.0 + */ +@Supplier("service-supper") +@TestAnnotation +public class ServiceSupper { + + @Autowired + private Basic2Config config; + + @Supplier.Method("hello") + public String hello(String s){ + System.out.println(s); + return s; + } + + @Supplier.Method("getConfig") + public Basic2Config getConfig(String name){ + Basic2Config newConfig = new Basic2Config(); + BeanUtils.copyProperties(config, newConfig); + newConfig.setName(name); + return newConfig; + } + + public R param(Param param){ + System.out.println(param); + R r = new R(); + r.setName("bean"); + return r; + } + + public R paramList(List params){ + System.out.println(params.toString()); + R r = new R(); + r.setName("list"); + return r; + } + + public R paramMap(Map params){ + System.out.println(params.toString()); + R r = new R(); + r.setName("map"); + return r; + } + + @Data + public static class Param{ + private String name; + private Integer age; + private List params; + } + + @Data + public static class R{ + String name; + } + + + +} diff --git a/example-plugins-basic/example-basic-2/src/main/resources/basic2-config-dev.yaml b/example-plugins-basic/example-basic-2/src/main/resources/basic2-config-dev.yaml new file mode 100644 index 0000000..8e0a8eb --- /dev/null +++ b/example-plugins-basic/example-basic-2/src/main/resources/basic2-config-dev.yaml @@ -0,0 +1,3 @@ +basic: + name: I'm the plugin example basic2 + age: 20 \ No newline at end of file diff --git a/example-plugins-basic/example-basic-2/src/main/resources/basic2-config.yaml b/example-plugins-basic/example-basic-2/src/main/resources/basic2-config.yaml new file mode 100644 index 0000000..caf4dfc --- /dev/null +++ b/example-plugins-basic/example-basic-2/src/main/resources/basic2-config.yaml @@ -0,0 +1,3 @@ +spring: + profiles: + active: dev \ No newline at end of file diff --git a/example-plugins-dir2/pom.xml b/example-plugins-basic/pom.xml similarity index 38% rename from example-plugins-dir2/pom.xml rename to example-plugins-basic/pom.xml index 2c7e167..3943847 100644 --- a/example-plugins-dir2/pom.xml +++ b/example-plugins-basic/pom.xml @@ -6,25 +6,39 @@ springboot-plugin-framework-example com.gitee.starblues 1.0.0-SNAPSHOT + ../pom.xml 4.0.0 - example-plugins-dir2 + example-plugins-basic pom - example-plugin1 - example-plugin2 + example-basic-1 + example-basic-2 - 1.18.10 4.13 + 2.5.6 + 3.0.0-alpha + 3.1.1 + + org.springframework.boot + spring-boot-starter + ${spring-boot.version} + + + + com.gitee.starblues + springboot-plugin-bootstrap + ${springboot-plugin.version} + com.gitee.starblues @@ -40,5 +54,37 @@ test + + org.projectlombok + lombok + ${lombok.version} + provided + + + + + + + com.gitee.starblues + springboot-plugin-maven-packager + ${springboot-plugin.version} + + + + + com.gitee.starblues + example-basic-common + ~\springboot-plugin-framework-example\example-plugins-basic\example-basic-common\target\classes + + + + + + + + + + + \ No newline at end of file diff --git a/example-plugins-cloud/example-plugin-cloud-nacos/pom.xml b/example-plugins-cloud/example-plugin-cloud-nacos/pom.xml new file mode 100644 index 0000000..0fbc68a --- /dev/null +++ b/example-plugins-cloud/example-plugin-cloud-nacos/pom.xml @@ -0,0 +1,83 @@ + + + + example-plugins-cloud + com.gitee.starblues + 1.0.0-SNAPSHOT + + 4.0.0 + + example-plugin-cloud-nacos + + + 0.2.7 + + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-aop + + + + com.gitee.starblues + springboot-plugin-bootstrap + + + + com.gitee.starblues + example-main + + + + com.alibaba.boot + nacos-discovery-spring-boot-starter + ${nacos.version} + + + + com.alibaba.boot + nacos-config-spring-boot-starter + ${nacos.version} + + + + + + + com.gitee.starblues + springboot-plugin-maven-packager + + ${plugin.build.mode} + + cloud-nacos + com.gitee.starblues.cloud.nacos.CloudNacosPlugin + 1.0.0-SNAPSHOT + starBlues + 微服务nacos案例插件 + cloud-nacos.yaml + + + jar + + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/CloudNacosPlugin.java b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/CloudNacosPlugin.java new file mode 100644 index 0000000..af31781 --- /dev/null +++ b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/CloudNacosPlugin.java @@ -0,0 +1,18 @@ +package com.gitee.starblues.cloud.nacos; + +import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; + +/** + * @author starBlues + * @version 1.0 + */ +@SpringBootApplication(exclude = JacksonAutoConfiguration.class) +public class CloudNacosPlugin extends SpringPluginBootstrap { + + public static void main(String[] args) { + new CloudNacosPlugin().run(args); + } + +} diff --git a/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/NacosRegister.java b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/NacosRegister.java new file mode 100644 index 0000000..f6a5529 --- /dev/null +++ b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/NacosRegister.java @@ -0,0 +1,23 @@ +package com.gitee.starblues.cloud.nacos; + +import com.alibaba.boot.nacos.discovery.autoconfigure.NacosDiscoveryAutoRegister; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +public class NacosRegister implements ApplicationListener { + + @Autowired + private NacosDiscoveryAutoRegister register; + + @Override + public void onApplicationEvent(ApplicationReadyEvent event) { + register.onApplicationEvent(null); + } +} diff --git a/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/config/NacosConfigExample.java b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/config/NacosConfigExample.java new file mode 100644 index 0000000..8a12e5c --- /dev/null +++ b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/config/NacosConfigExample.java @@ -0,0 +1,25 @@ +package com.gitee.starblues.cloud.nacos.config; + +import com.alibaba.nacos.api.config.ConfigType; +import com.alibaba.nacos.api.config.annotation.NacosConfigurationProperties; +import com.alibaba.nacos.api.config.annotation.NacosValue; +import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Data +@Component +@NacosConfigurationProperties(prefix = "nacos-config", dataId = "example.yaml", type = ConfigType.YAML, autoRefreshed = true) +public class NacosConfigExample { + + private String name; + + private Integer age; + +} diff --git a/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/controller/NacosConfigController.java b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/controller/NacosConfigController.java new file mode 100644 index 0000000..4daccc2 --- /dev/null +++ b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/java/com/gitee/starblues/cloud/nacos/controller/NacosConfigController.java @@ -0,0 +1,27 @@ +package com.gitee.starblues.cloud.nacos.controller; + +import com.gitee.starblues.cloud.nacos.config.NacosConfigExample; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author starBlues + * @version 1.0 + */ +@RestController +@RequestMapping("nacos-config") +@Api(tags = "nacos-plugin-config") +public class NacosConfigController { + + @Autowired + private NacosConfigExample configExample; + + @GetMapping + public NacosConfigExample getConfig() { + return configExample; + } + +} diff --git a/example-plugins-cloud/example-plugin-cloud-nacos/src/main/resources/cloud-nacos.yaml b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/resources/cloud-nacos.yaml new file mode 100644 index 0000000..118f8f2 --- /dev/null +++ b/example-plugins-cloud/example-plugin-cloud-nacos/src/main/resources/cloud-nacos.yaml @@ -0,0 +1,11 @@ +nacos: + discovery: + autoRegister: true + server-addr: 127.0.0.1:8848 + register: + # 主程序端口号 + port: 8080 + # 服务名称 + serviceName: cloud-nacos-plugin + config: + server-addr: 127.0.0.1:8848 \ No newline at end of file diff --git a/example-plugin-dependency/pom.xml b/example-plugins-cloud/pom.xml similarity index 33% rename from example-plugin-dependency/pom.xml rename to example-plugins-cloud/pom.xml index 3601010..85ff533 100644 --- a/example-plugin-dependency/pom.xml +++ b/example-plugins-cloud/pom.xml @@ -10,46 +10,79 @@ 4.0.0 - example-plugin-dependency - 定义插件中所需的依赖 + example-plugins-cloud + pom + + example-plugin-cloud-nacos + - 2.5.0 + 1.18.10 + 4.13 - 2.4.5 - 1.1.9 + 2.3.12.RELEASE + 3.0.0-alpha + + 3.1.1 - org.springframework.boot - spring-boot-dependencies + spring-boot-starter ${spring-boot.version} - pom - import + + + + org.springframework.boot + spring-boot-starter-aop + ${spring-boot.version} + + + + com.gitee.starblues + springboot-plugin-bootstrap + ${springboot-plugin.version} + + + + com.gitee.starblues + example-main + ${project.version} + provided - - org.springframework.boot - spring-boot-starter-quartz + junit + junit + ${junit.version} + test - - - org.springframework.boot - spring-boot-starter-data-jpa - - com.alibaba - druid - ${druid.version} + org.projectlombok + lombok + ${lombok.version} + provided + + + + + com.gitee.starblues + springboot-plugin-maven-packager + ${springboot-plugin.version} + + + + + + + \ No newline at end of file diff --git a/example-plugins-db/example-jpa/pom.xml b/example-plugins-db/example-jpa/pom.xml new file mode 100644 index 0000000..034191b --- /dev/null +++ b/example-plugins-db/example-jpa/pom.xml @@ -0,0 +1,91 @@ + + + + example-plugins-db + com.gitee.starblues + 1.0.0-SNAPSHOT + ../pom.xml + + 4.0.0 + + example-jpa + jar + + + + + org.springframework.boot + spring-boot-starter-quartz + 2.5.0 + + + org.springframework.boot + spring-boot-starter-data-jpa + 2.5.0 + + + + + javax.xml.bind + jaxb-api + 2.3.0 + + + com.sun.xml.bind + jaxb-impl + 2.3.0 + + + com.sun.xml.bind + jaxb-core + 2.3.0 + + + javax.activation + activation + 1.1.1 + + + + + + + + com.gitee.starblues + springboot-plugin-maven-packager + + ${plugin.build.mode} + + jpa-example-plugin + com.gitee.starblues.example.jpa.JpaPlugin + 1.0.0 + starBlues + spring-jpa案例插件 + jpa.yml + + + + + mysql + mysql-connector-java + + + + + jar + + + + + + repackage + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..2b6b58d --- /dev/null +++ b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java @@ -0,0 +1,19 @@ +package com.gitee.starblues.example.jpa; + +import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Import; + +/** + * jpa 插件 + * @author starBlues + * @version 2.4.3 + */ +@SpringBootApplication() +public class JpaPlugin extends SpringPluginBootstrap{ + + public static void main(String[] args) { + new JpaPlugin().run(JpaPlugin.class, args); + } + +} diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/QuartzJobConfig.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/QuartzJobConfig.java similarity index 100% rename from example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/QuartzJobConfig.java rename to example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/QuartzJobConfig.java diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/prop/QuartzJobProp.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/prop/QuartzJobProp.java similarity index 100% rename from example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/prop/QuartzJobProp.java rename to example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/prop/QuartzJobProp.java diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/dao/PluginJpaUserDao.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/dao/PluginJpaUserDao.java similarity index 100% rename from example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/dao/PluginJpaUserDao.java rename to example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/dao/PluginJpaUserDao.java diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/entity/PluginJpaUser.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/entity/PluginJpaUser.java similarity index 100% rename from example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/entity/PluginJpaUser.java rename to example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/entity/PluginJpaUser.java diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/rest/JpaPluginUserResource.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/rest/JpaPluginUserResource.java similarity index 96% rename from example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/rest/JpaPluginUserResource.java rename to example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/rest/JpaPluginUserResource.java index 971439f..4eb03c2 100644 --- a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/rest/JpaPluginUserResource.java +++ b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/rest/JpaPluginUserResource.java @@ -18,7 +18,7 @@ import java.util.List; */ @RestController @RequestMapping("/jpa") -@Api(value = "jpa插件接口") +@Api(tags = "jap-plugin") public class JpaPluginUserResource { @Resource diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/package-info.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/package-info.java similarity index 100% rename from example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/package-info.java rename to example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/package-info.java diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/quartz/DatabaseInsertJob.java b/example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/quartz/DatabaseInsertJob.java similarity index 100% rename from example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/quartz/DatabaseInsertJob.java rename to example-plugins-db/example-jpa/src/main/java/com/gitee/starblues/example/jpa/service/quartz/DatabaseInsertJob.java diff --git a/example-plugins-dir1/example-jpa/src/main/resources/jpa-dev.yml b/example-plugins-db/example-jpa/src/main/resources/jpa-dev.yml similarity index 91% rename from example-plugins-dir1/example-jpa/src/main/resources/jpa-dev.yml rename to example-plugins-db/example-jpa/src/main/resources/jpa-dev.yml index 02692ab..eb53406 100644 --- a/example-plugins-dir1/example-jpa/src/main/resources/jpa-dev.yml +++ b/example-plugins-db/example-jpa/src/main/resources/jpa-dev.yml @@ -1,4 +1,6 @@ spring: + application: + name: jpa-plugin1 datasource: # druid 数据库连接池配置 driver-class-name: com.mysql.cj.jdbc.Driver @@ -20,6 +22,9 @@ spring: # 配置指明在程序启动的时候要删除并且创建实体类对应的表。 hibernate: ddl-auto: create #update + jmx: + default-domain: jpa-plugin1 + enabled: false plugin: auto-config-class: diff --git a/example-plugins-dir1/example-jpa/src/main/resources/jpa-prod.yml b/example-plugins-db/example-jpa/src/main/resources/jpa-prod.yml similarity index 100% rename from example-plugins-dir1/example-jpa/src/main/resources/jpa-prod.yml rename to example-plugins-db/example-jpa/src/main/resources/jpa-prod.yml diff --git a/example-plugins-db/example-jpa/src/main/resources/jpa.yml b/example-plugins-db/example-jpa/src/main/resources/jpa.yml new file mode 100644 index 0000000..caf4dfc --- /dev/null +++ b/example-plugins-db/example-jpa/src/main/resources/jpa.yml @@ -0,0 +1,3 @@ +spring: + profiles: + active: dev \ No newline at end of file diff --git a/example-plugins-db/example-jpa/src/main/resources/plugin.properties b/example-plugins-db/example-jpa/src/main/resources/plugin.properties new file mode 100644 index 0000000..f5d2566 --- /dev/null +++ b/example-plugins-db/example-jpa/src/main/resources/plugin.properties @@ -0,0 +1,8 @@ +plugin.id=example-jpa +plugin.class=com.gitee.starblues.example.jpa.JpaPlugin +plugin.version=2.4.3-SNAPSHOT +plugin.provider=starblues +plugin.description=集成jpa插件 +plugin.configFileName=jpa.yml +plugin.libDir=D://etc//kitte//ksm//springboot-plugin-framework-parent//springboot-plugin-framework-example//example-plugins-dir1//example-jpa//target//lib +plugin.externalDir=D://etc//kitte//ksm//springboot-plugin-framework-parent//springboot-plugin-loader//target//classes \ No newline at end of file diff --git a/example-plugins-db/example-mybatis-plus/pom.xml b/example-plugins-db/example-mybatis-plus/pom.xml new file mode 100644 index 0000000..2e44f45 --- /dev/null +++ b/example-plugins-db/example-mybatis-plus/pom.xml @@ -0,0 +1,54 @@ + + + + example-plugins-db + com.gitee.starblues + 1.0.0-SNAPSHOT + ../pom.xml + + 4.0.0 + + example-mybatis-plus + + + + com.baomidou + mybatis-plus-boot-starter + 3.5.0 + + + + + + + + com.gitee.starblues + springboot-plugin-maven-packager + + ${plugin.build.mode} + + mybatis-plus-example-plugin + com.gitee.starblues.example.mp.MybatisPlusExamplePlugin + 1.0.0 + starBlues + mybatis-plus案例插件 + mp-config.yaml + + + jar + + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/DbStop.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/DbStop.java new file mode 100644 index 0000000..72ed393 --- /dev/null +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/DbStop.java @@ -0,0 +1,23 @@ +package com.gitee.starblues.example.mp; + +import com.gitee.starblues.bootstrap.realize.PluginCloseListener; +import com.gitee.starblues.core.descriptor.PluginDescriptor; +import com.zaxxer.hikari.HikariDataSource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author starBlues + * @version 1.0 + */ +@Component +public class DbStop implements PluginCloseListener { + + @Autowired + private HikariDataSource dataSource; + + @Override + public void close(PluginDescriptor descriptor) { + dataSource.close(); + } +} 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 new file mode 100644 index 0000000..5df193f --- /dev/null +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/MybatisPlusExamplePlugin.java @@ -0,0 +1,17 @@ +package com.gitee.starblues.example.mp; + +import com.gitee.starblues.bootstrap.SpringPluginBootstrap; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author starBlues + * @version 1.0 + */ +@SpringBootApplication +public class MybatisPlusExamplePlugin extends SpringPluginBootstrap { + + public static void main(String[] args) { + new MybatisPlusExamplePlugin().run(args); + } + +} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/entity/Plugin1User.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/entity/MpPluginUser.java similarity index 94% rename from example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/entity/Plugin1User.java rename to example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/entity/MpPluginUser.java index 5eef08d..b602176 100644 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/entity/Plugin1User.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/entity/MpPluginUser.java @@ -1,14 +1,15 @@ -package com.gitee.starblues.example.plugin1.entity; +package com.gitee.starblues.example.mp.entity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.io.Serializable; + /** *

* 插件1-用户表 @@ -20,7 +21,7 @@ import lombok.experimental.Accessors; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -public class Plugin1User implements Serializable { +public class MpPluginUser implements Serializable { private static final long serialVersionUID = 1L; diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/mapper/Plugin1UserMapper.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/mapper/MpPluginUserMapper.java similarity index 49% rename from example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/mapper/Plugin1UserMapper.java rename to example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/mapper/MpPluginUserMapper.java index 407c016..9826d20 100644 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/mapper/Plugin1UserMapper.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/mapper/MpPluginUserMapper.java @@ -1,7 +1,7 @@ -package com.gitee.starblues.example.plugin1.mapper; +package com.gitee.starblues.example.mp.mapper; -import com.gitee.starblues.example.plugin1.entity.Plugin1User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gitee.starblues.example.mp.entity.MpPluginUser; import org.apache.ibatis.annotations.Mapper; /** @@ -13,8 +13,8 @@ import org.apache.ibatis.annotations.Mapper; * @since 2021-05-21 */ @Mapper -public interface Plugin1UserMapper extends BaseMapper { +public interface MpPluginUserMapper extends BaseMapper { - Plugin1User getPluginById(String id); + MpPluginUser getPluginById(String id); } diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/rest/Plugin1UserResource.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java similarity index 32% rename from example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/rest/Plugin1UserResource.java rename to example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java index 29d76b7..08936e3 100644 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/rest/Plugin1UserResource.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/rest/MpPluginUserController.java @@ -1,12 +1,10 @@ -package com.gitee.starblues.example.plugin1.rest; +package com.gitee.starblues.example.mp.rest; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.gitee.starblues.example.plugin1.entity.Plugin1User; -import com.gitee.starblues.example.plugin1.service.Plugin1UserService; +import com.gitee.starblues.example.mp.entity.MpPluginUser; +import com.gitee.starblues.example.mp.service.MpPluginUserService; import io.swagger.annotations.Api; -import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; @@ -18,29 +16,29 @@ import org.springframework.web.bind.annotation.*; */ @RestController @RequestMapping("/user") -@Api +@Api(tags = "mybatis-plus-plugin") @RequiredArgsConstructor -public class Plugin1UserResource { +public class MpPluginUserController { - private final Plugin1UserService plugin1UserService; + private final MpPluginUserService mpPluginUserService; @GetMapping - public Page getPage(@RequestParam("currentPage") Integer currentPage, - @RequestParam("pageSize") Integer pageSize){ - Page plugin2UserPage = new Page<>(currentPage, pageSize); - return plugin1UserService.page(plugin2UserPage); + public Page getPage(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize){ + Page plugin2UserPage = new Page<>(currentPage, pageSize); + return mpPluginUserService.page(plugin2UserPage); } @GetMapping("/{id}") - public Plugin1User getById(@PathVariable("id") String id){ - return plugin1UserService.getBaseMapper().getPluginById(id); + public MpPluginUser getById(@PathVariable("id") String id){ + return mpPluginUserService.getBaseMapper().getPluginById(id); } @PostMapping - public Plugin1User addUser(@RequestBody Plugin1User plugin2User){ - plugin1UserService.save(plugin2User); + public MpPluginUser addUser(@RequestBody MpPluginUser plugin2User){ + mpPluginUserService.save(plugin2User); return plugin2User; } diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/Plugin1UserService.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java similarity index 37% rename from example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/Plugin1UserService.java rename to example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java index 0eeec4e..f983771 100644 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/Plugin1UserService.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/MpPluginUserService.java @@ -1,8 +1,8 @@ -package com.gitee.starblues.example.plugin1.service; +package com.gitee.starblues.example.mp.service; -import com.gitee.starblues.example.plugin1.entity.Plugin1User; import com.baomidou.mybatisplus.extension.service.IService; -import com.gitee.starblues.example.plugin1.mapper.Plugin1UserMapper; +import com.gitee.starblues.example.mp.entity.MpPluginUser; +import com.gitee.starblues.example.mp.mapper.MpPluginUserMapper; /** *

@@ -12,8 +12,8 @@ import com.gitee.starblues.example.plugin1.mapper.Plugin1UserMapper; * @author starBlues * @since 2021-05-21 */ -public interface Plugin1UserService extends IService { +public interface MpPluginUserService extends IService { @Override - Plugin1UserMapper getBaseMapper(); + MpPluginUserMapper getBaseMapper(); } diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/Plugin1UserServiceImpl.java b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java similarity index 38% rename from example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/Plugin1UserServiceImpl.java rename to example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java index 3bb00c3..42e1c98 100644 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/Plugin1UserServiceImpl.java +++ b/example-plugins-db/example-mybatis-plus/src/main/java/com/gitee/starblues/example/mp/service/impl/MpPluginUserServiceImpl.java @@ -1,9 +1,9 @@ -package com.gitee.starblues.example.plugin1.service.impl; +package com.gitee.starblues.example.mp.service.impl; -import com.gitee.starblues.example.plugin1.entity.Plugin1User; -import com.gitee.starblues.example.plugin1.mapper.Plugin1UserMapper; -import com.gitee.starblues.example.plugin1.service.Plugin1UserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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; /** @@ -15,6 +15,6 @@ import org.springframework.stereotype.Service; * @since 2021-05-21 */ @Service -public class Plugin1UserServiceImpl extends ServiceImpl implements Plugin1UserService { +public class MpPluginUserServiceImpl extends ServiceImpl implements MpPluginUserService { } diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-mapper/Plugin1UserMapper.xml b/example-plugins-db/example-mybatis-plus/src/main/resources/mapper/MpPluginUserMapper.xml similarity index 88% rename from example-plugins-dir2/example-plugin1/src/main/resources/plugin1-mapper/Plugin1UserMapper.xml rename to example-plugins-db/example-mybatis-plus/src/main/resources/mapper/MpPluginUserMapper.xml index 6ac88ec..32f8249 100644 --- a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-mapper/Plugin1UserMapper.xml +++ b/example-plugins-db/example-mybatis-plus/src/main/resources/mapper/MpPluginUserMapper.xml @@ -1,9 +1,9 @@ - + - + @@ -26,8 +26,9 @@ user_id, name, phone, email, username, password, status, deleted, locked, create_user, gmt_created, modified_user, gmt_modified, avatar, last_login_ip, last_gmt_login_time - + select * from mp_plugin_user where user_id = #{id} diff --git a/example-plugins-db/example-mybatis-plus/src/main/resources/mp-config.yaml b/example-plugins-db/example-mybatis-plus/src/main/resources/mp-config.yaml new file mode 100644 index 0000000..782a8c2 --- /dev/null +++ b/example-plugins-db/example-mybatis-plus/src/main/resources/mp-config.yaml @@ -0,0 +1,13 @@ +spring: + datasource: + 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 + +mybatis-plus: + typeAliasesPackage: com.gitee.starblues.example.mp.entity + mapperLocations: classpath*:mapper/*.xml + configuration: + mapUnderscoreToCamelCase: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file diff --git a/example-plugins-dir1/pom.xml b/example-plugins-db/pom.xml similarity index 56% rename from example-plugins-dir1/pom.xml rename to example-plugins-db/pom.xml index 48c588d..57377af 100644 --- a/example-plugins-dir1/pom.xml +++ b/example-plugins-db/pom.xml @@ -10,21 +10,35 @@ 4.0.0 - example-plugins-dir1 + example-plugins-db pom - example-basic example-jpa + example-mybatis-plus 1.18.10 4.13 + 3.0.0-alpha + 2.5.6 + 3.1.1 + + org.springframework.boot + spring-boot-starter + ${spring-boot.version} + + + + com.gitee.starblues + springboot-plugin-bootstrap + ${springboot-plugin.version} + com.gitee.starblues @@ -39,7 +53,19 @@ ${junit.version} test - + + + + + + com.gitee.starblues + springboot-plugin-maven-packager + ${springboot-plugin.version} + + + + + \ No newline at end of file diff --git a/example-plugins-dir1/example-basic/pom.xml b/example-plugins-dir1/example-basic/pom.xml deleted file mode 100644 index cd112a2..0000000 --- a/example-plugins-dir1/example-basic/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - example-plugins-dir1 - com.gitee.starblues - 1.0.0-SNAPSHOT - - 4.0.0 - - example-basic - jar - - \ No newline at end of file diff --git a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/BasicPlugin.java b/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/BasicPlugin.java deleted file mode 100644 index 654eab1..0000000 --- a/example-plugins-dir1/example-basic/src/main/java/com/gitee/starblues/example/basic/BasicPlugin.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gitee.starblues.example.basic; - -import com.gitee.starblues.realize.BasePlugin; -import org.pf4j.PluginWrapper; - -/** - * 基本插件 - * @author starBlues - * @version 1.0 - * @since 2021-08-01 - */ -public class BasicPlugin extends BasePlugin { - public BasicPlugin(PluginWrapper wrapper) { - super(wrapper); - } -} diff --git a/example-plugins-dir1/example-basic/src/main/resources/plugin.properties b/example-plugins-dir1/example-basic/src/main/resources/plugin.properties deleted file mode 100644 index 532942b..0000000 --- a/example-plugins-dir1/example-basic/src/main/resources/plugin.properties +++ /dev/null @@ -1,5 +0,0 @@ -plugin.id=example-basic -plugin.class=com.gitee.starblues.example.basic.BasicPlugin -plugin.version=1.0.0-SNAPSHOT -plugin.provider=starblues -plugin.description=基本插件 \ No newline at end of file diff --git a/example-plugins-dir1/example-jpa/pom.xml b/example-plugins-dir1/example-jpa/pom.xml deleted file mode 100644 index 77ea0f8..0000000 --- a/example-plugins-dir1/example-jpa/pom.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - example-plugins-dir1 - com.gitee.starblues - 1.0.0-SNAPSHOT - ../pom.xml - - 4.0.0 - - example-jpa - jar - - \ No newline at end of file diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java b/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java deleted file mode 100644 index cdf11f9..0000000 --- a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/JpaPlugin.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gitee.starblues.example.jpa; - -import com.gitee.starblues.annotation.ConfigDefinition; -import com.gitee.starblues.realize.BasePlugin; -import org.pf4j.PluginWrapper; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; - -/** - * jpa 插件 - * @author starBlues - * @version 2.4.3 - */ -@ConfigDefinition(fileName = "jpa.yml", devSuffix = "-dev", prodSuffix = "-prod") -public class JpaPlugin extends BasePlugin { - public JpaPlugin(PluginWrapper wrapper) { - super(wrapper); - } -} diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/PluginJpaConfig.java b/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/PluginJpaConfig.java deleted file mode 100644 index 25f4953..0000000 --- a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/config/PluginJpaConfig.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gitee.starblues.example.jpa.config; - -import com.alibaba.druid.pool.DruidDataSource; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; - -import javax.sql.DataSource; - -/** - * 设置DataSource - * 注意: 使用集成jpa并用 druid 连接池(或者其他连接池)时, 必须手动定义 DataSource Bean - * @author starBlues - * @version 1.0 - * @since 2021-05-25 - */ -@Configuration -@EnableJpaRepositories(basePackages = "com.gitee.starblues.example.jpa") -public class PluginJpaConfig { - - @ConfigurationProperties(prefix = "spring.datasource") - @Bean - public DataSource dataSource(){ - return new DruidDataSource(); - } -} diff --git a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/extract/ExtractExampleImp1.java b/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/extract/ExtractExampleImp1.java deleted file mode 100644 index 99b9074..0000000 --- a/example-plugins-dir1/example-jpa/src/main/java/com/gitee/starblues/example/jpa/extract/ExtractExampleImp1.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gitee.starblues.example.jpa.extract; - -import com.gitee.starblues.annotation.Extract; -import com.gitee.starblues.example.plugin.ExtractExample; - -/** - * ExtractExample 实现1 - * @author starBlues - * @version 1.0 - * @since 2021-07-24 - */ -@Extract(bus = "example", scene = "jpa", order = 1) -public class ExtractExampleImp1 implements ExtractExample { - @Override - public Info exeInfo(Info info) { - info.setName("My is ExtractExampleImp1 of jpa-plugin"); - return info; - } -} diff --git a/example-plugins-dir1/example-jpa/src/main/resources/plugin.properties b/example-plugins-dir1/example-jpa/src/main/resources/plugin.properties deleted file mode 100644 index 7ff0931..0000000 --- a/example-plugins-dir1/example-jpa/src/main/resources/plugin.properties +++ /dev/null @@ -1,5 +0,0 @@ -plugin.id=example-jpa -plugin.class=com.gitee.starblues.example.jpa.JpaPlugin -plugin.version=2.4.3-SNAPSHOT -plugin.provider=starblues -plugin.description=集成jpa插件 \ No newline at end of file diff --git a/example-plugins-dir2/example-plugin1/pom.xml b/example-plugins-dir2/example-plugin1/pom.xml deleted file mode 100644 index 3a46d9d..0000000 --- a/example-plugins-dir2/example-plugin1/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - example-plugins-dir2 - com.gitee.starblues - 1.0.0-SNAPSHOT - ../pom.xml - - 4.0.0 - - example-plugin1 - jar - - - \ No newline at end of file diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/ExamplePlugin1.java b/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/ExamplePlugin1.java deleted file mode 100644 index 778d7eb..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/ExamplePlugin1.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gitee.starblues.example.plugin1; - -import com.gitee.starblues.annotation.ConfigDefinition; -import com.gitee.starblues.realize.BasePlugin; -import org.pf4j.PluginWrapper; - -/** - * 案例插件1 - * @author starBlues - * @version 2.4.3 - */ -public class ExamplePlugin1 extends BasePlugin { - public ExamplePlugin1(PluginWrapper wrapper) { - super(wrapper); - } -} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/MybatisPlusConfig.java b/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/MybatisPlusConfig.java deleted file mode 100644 index 9a0862d..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/MybatisPlusConfig.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gitee.starblues.example.plugin1.config; - -import com.baomidou.mybatisplus.core.MybatisConfiguration; -import com.baomidou.mybatisplus.core.config.GlobalConfig; -import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; -import com.gitee.starblues.annotation.ConfigDefinition; -import com.gitee.starblues.extension.mybatis.mybatisplus.SpringBootMybatisPlusConfig; -import org.apache.ibatis.reflection.MetaObject; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.HashSet; -import java.util.Set; - -/** - * 插件中mybatis-plus配置 - * @author starBlues - * @version 2.4.3 - */ -@ConfigDefinition -public class MybatisPlusConfig implements SpringBootMybatisPlusConfig { - - @Override - public void reSetMainConfig(MybatisConfiguration configuration, GlobalConfig globalConfig) { - globalConfig.setMetaObjectHandler(new GmtTimeHandler()); - } - - @Override - public Set entityPackage() { - Set typeAliasesPackage = new HashSet<>(); - typeAliasesPackage.add("com.gitee.starblues.example.plugin1.entity"); - return typeAliasesPackage; - } - - @Override - public Set xmlLocationsMatch() { - Set xmlLocationsMatch = new HashSet<>(); - xmlLocationsMatch.add("classpath:plugin1-mapper/*Mapper.xml"); - return xmlLocationsMatch; - } - - public static class GmtTimeHandler implements MetaObjectHandler { - - private static final String FORMAT_SECONDS = "yyyy-MM-dd HH:mm:ss"; - - @Override - public void insertFill(MetaObject metaObject) { - String data = getData(); - this.strictInsertFill(metaObject, "gmtCreated", String.class, data); - this.strictInsertFill(metaObject, "gmtModified", String.class, data); - String currentUsername = "admin"; - this.strictInsertFill(metaObject, "createUser", String.class, currentUsername); - this.strictInsertFill(metaObject, "modifiedUser", String.class, currentUsername); - } - - @Override - public void updateFill(MetaObject metaObject) { - this.strictUpdateFill(metaObject, "gmtModified", String.class, getData()); - this.strictUpdateFill(metaObject, "modifiedUser", - ()-> "admin", - String.class); - } - - - private String getData(){ - LocalDateTime localDateTime = LocalDateTime.now(); - DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(FORMAT_SECONDS); - return dateTimeFormatter.format(localDateTime); - } - - } -} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/QuartzJobConfig.java b/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/QuartzJobConfig.java deleted file mode 100644 index 3ab7f9a..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/config/QuartzJobConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gitee.starblues.example.plugin1.config; - -import com.gitee.starblues.example.plugin1.config.prop.QuartzJobProp; -import com.gitee.starblues.example.plugin1.service.quartz.DatabaseInsertJob; -import lombok.AllArgsConstructor; -import org.quartz.*; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import javax.annotation.Resource; -import java.util.Date; - -/** - * quartz 配置 - * @author starBlues - * @version 2.4.3 - */ -@Configuration -@AllArgsConstructor -public class QuartzJobConfig { - - private final QuartzJobProp quartzJobProp; - private final ApplicationContext applicationContext; - - - @Bean - public JobDetail databaseInsertJob(){ - JobDataMap jobDataMap = new JobDataMap(); - jobDataMap.put(DatabaseInsertJob.APPLICATION_CONTEXT, applicationContext); - return JobBuilder.newJob(DatabaseInsertJob.class) - .storeDurably() - .setJobData(jobDataMap) - .build(); - } - - @Bean - public Trigger trigger1(){ - CronScheduleBuilder cronScheduleBuilder = - CronScheduleBuilder.cronSchedule(quartzJobProp.getDatabaseInsertJobCron()); - Long databaseInsertJobDelaySec = quartzJobProp.getDatabaseInsertJobDelaySec(); - return TriggerBuilder.newTrigger() - .forJob(databaseInsertJob()) - .withSchedule(cronScheduleBuilder) - .startAt(new Date(System.currentTimeMillis() + (databaseInsertJobDelaySec * 1000))) - .build(); - } - -} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/extract/ExtractExampleImp2.java b/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/extract/ExtractExampleImp2.java deleted file mode 100644 index 2431ad9..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/extract/ExtractExampleImp2.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gitee.starblues.example.plugin1.extract; - -import com.gitee.starblues.annotation.Extract; -import com.gitee.starblues.example.plugin.ExtractExample; - -/** - * ExtractExample 实现1 - * @author starBlues - * @version 1.0 - * @since 2021-07-24 - */ -@Extract(bus = "example", scene = "plugin", order = 1) -public class ExtractExampleImp2 implements ExtractExample { - @Override - public Info exeInfo(Info info) { - info.setName("My is ExtractExampleImp2 of example-plugin1"); - return info; - } -} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/listener/ClearUserDataListener.java b/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/listener/ClearUserDataListener.java deleted file mode 100644 index 2b71919..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/listener/ClearUserDataListener.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gitee.starblues.example.plugin1.listener; - -import com.gitee.starblues.example.plugin1.service.Plugin1UserService; -import com.gitee.starblues.realize.BasePlugin; -import com.gitee.starblues.realize.OneselfListener; -import com.gitee.starblues.utils.OrderPriority; -import lombok.AllArgsConstructor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * 清除user表数据的监听器 - * - * @author starBlues - * @version 1.0 - * @since 2021-05-25 - */ -@AllArgsConstructor -public class ClearUserDataListener implements OneselfListener { - - - private final static Logger LOG = LoggerFactory.getLogger(ClearUserDataListener.class); - - private final Plugin1UserService plugin1UserService; - - @Override - public OrderPriority order() { - return OrderPriority.getHighPriority(); - } - - @Override - public void startEvent(BasePlugin basePlugin) { - plugin1UserService.remove(null); - LOG.info("清除用户表数据成功"); - } - - @Override - public void stopEvent(BasePlugin basePlugin) { - - } -} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/ExtractExample2.java b/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/ExtractExample2.java deleted file mode 100644 index 6555211..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/impl/ExtractExample2.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gitee.starblues.example.plugin1.service.impl; - -import com.gitee.starblues.annotation.Extract; -import com.gitee.starblues.example.plugin.ExtractExample; - -/** - * @author zhangzhuo@acoinfo.com - * @version 1.0 - * @since 2021-07-23 - */ -@Extract(bus = "PluginExtract2", order = 0) -public class ExtractExample2 implements ExtractExample { - - @Override - public Info exeInfo(Info info) { - info.setName("ExtractExample2"); - return info; - } -} diff --git a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/quartz/DatabaseInsertJob.java b/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/quartz/DatabaseInsertJob.java deleted file mode 100644 index 1a384b8..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/java/com/gitee/starblues/example/plugin1/service/quartz/DatabaseInsertJob.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gitee.starblues.example.plugin1.service.quartz; - -import com.gitee.starblues.example.plugin1.entity.Plugin1User; -import com.gitee.starblues.example.plugin1.service.Plugin1UserService; -import org.quartz.Job; -import org.quartz.JobDataMap; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.ApplicationContext; - -import java.util.Date; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * 数据库插入者启动的job - * @author starBlues - * @version 2.4.3 - */ -public class DatabaseInsertJob implements Job { - - private static final Logger LOG = LoggerFactory.getLogger(DatabaseInsertJob.class); - - public static final String APPLICATION_CONTEXT = "applicationContext"; - - private ApplicationContext applicationContext; - private Plugin1UserService plugin1UserService; - - private AtomicInteger count = new AtomicInteger(0); - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - JobDataMap mergedJobDataMap = jobExecutionContext.getMergedJobDataMap(); - applicationContext = (ApplicationContext) mergedJobDataMap.get(APPLICATION_CONTEXT); - plugin1UserService = applicationContext.getBean(Plugin1UserService.class); - insertUserData(); - } - - private void insertUserData() { - LOG.info("开始插入用户数据"); - Plugin1User plugin1User = new Plugin1User(); - int i = count.incrementAndGet(); - plugin1User.setUsername("plugin1-" + i); - plugin1User.setPassword("" + i); - plugin1User.setDeleted(0); - plugin1User.setName("name-" + i); - plugin1User.setStatus(1); - plugin1User.setLocked(2); - plugin1UserService.save(plugin1User); - } - - -} diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/plugin.properties b/example-plugins-dir2/example-plugin1/src/main/resources/plugin.properties deleted file mode 100644 index 4470656..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/resources/plugin.properties +++ /dev/null @@ -1,7 +0,0 @@ -plugin.id=example-plugin1 -plugin.class=com.gitee.starblues.example.plugin1.ExamplePlugin1 -plugin.version=2.4.3-SNAPSHOT -plugin.provider=starblues -plugin.description=案例插件1 -plugin.configFileName=plugin1.yml -plugin.configFileProfile=dev \ No newline at end of file diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-dev.yml b/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-dev.yml deleted file mode 100644 index 7bd4545..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-dev.yml +++ /dev/null @@ -1,16 +0,0 @@ -spring: - profiles: - include: thymeleaf - -plugin: - log-config-location: classpath:plugin1-log.xml - # 静态资源配置 - static: - # 静态资源位置 - locations: - - classpath:static - # - file:D:\aa - # log-config-location: classpath:plugin1-log.xml - # 配置当前插件需要自动装载的类。用于集成 xxx-starter - auto-config-class: - - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-log.xml b/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-log.xml deleted file mode 100644 index 879e8f3..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-log.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - ~\logs\ - current - INFO - 10MB - 10GB - 30 - %d{yyyy-MM-dd HH:mm:ss.SSS} -%5p --- [%t] %-40.40logger{39} : %m%n - \ No newline at end of file diff --git a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-prod.yml b/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-prod.yml deleted file mode 100644 index b1220f5..0000000 --- a/example-plugins-dir2/example-plugin1/src/main/resources/plugin1-prod.yml +++ /dev/null @@ -1,18 +0,0 @@ -plugin: - # 日志文件配置 - log-config-location: file:~/plugin-configs/plugin1-log.xml - # 静态资源配置 - static: - # 静态资源位置 - locations: - - classpath:static - # 插件thymeleaf配置 - thymeleaf: - prefix: plugin1-template - suffix: .html - mode: html - encoding: utf-8 - # log-config-location: classpath:plugin1-log.xml - # 配置当前插件需要自动装载的类。用于集成 xxx-starter - auto-config-class: - - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration diff --git a/example-plugins-dir2/example-plugin2/pom.xml b/example-plugins-dir2/example-plugin2/pom.xml deleted file mode 100644 index 97b45e3..0000000 --- a/example-plugins-dir2/example-plugin2/pom.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - example-plugins-dir2 - com.gitee.starblues - 1.0.0-SNAPSHOT - ../pom.xml - - 4.0.0 - - example-plugin2 - jar - - \ No newline at end of file diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/ExamplePlugin2.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/ExamplePlugin2.java deleted file mode 100644 index 8782987..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/ExamplePlugin2.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gitee.starblues.example.plugin2; - -import com.gitee.starblues.annotation.ConfigDefinition; -import com.gitee.starblues.realize.BasePlugin; -import org.pf4j.PluginWrapper; - -/** - * 案例插件2 - * @author starBlues - * @version 2.4.3 - */ -public class ExamplePlugin2 extends BasePlugin { - public ExamplePlugin2(PluginWrapper wrapper) { - super(wrapper); - } -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/config/MybatisPlusConfig.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/config/MybatisPlusConfig.java deleted file mode 100644 index 732d785..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/config/MybatisPlusConfig.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gitee.starblues.example.plugin2.config; - -import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; -import com.gitee.starblues.annotation.ConfigDefinition; -import com.gitee.starblues.extension.mybatis.mybatisplus.SpringBootMybatisPlusConfig; -import com.gitee.starblues.realize.ConfigDefinitionTip; -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; -import lombok.Data; - -import java.util.HashSet; -import java.util.Set; - -/** - * 插件中mybatis-plus配置 - * @author starBlues - * @version 2.4.3 - */ -@ConfigDefinition -public class MybatisPlusConfig implements SpringBootMybatisPlusConfig { - - private ConfigDefinitionTip configDefinitionTip; - - @Override - public boolean enableOneselfConfig() { - return true; - } - - @Override - public void oneselfConfig(MybatisSqlSessionFactoryBean sqlSessionFactoryBean) { - // 插件自定义数据库数据源, 为了方便测试, 还是连接主程序的配置 - // 直接从plugin2.yml配置文件中的plugin.datasource配置项中获取配置 - HikariConfig hikariConfig = configDefinitionTip.getConfigOfBean("plugin.datasource", - HikariConfig.class); - HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig); - sqlSessionFactoryBean.setDataSource(hikariDataSource); - } - - @Override - public Set entityPackage() { - Set typeAliasesPackage = new HashSet<>(); - typeAliasesPackage.add("com.gitee.starblues.example.plugin1.entity"); - return typeAliasesPackage; - } - - @Override - public Set xmlLocationsMatch() { - Set xmlLocationsMatch = new HashSet<>(); - xmlLocationsMatch.add("classpath:plugin2-mapper/*Mapper.xml"); - return xmlLocationsMatch; - } - - @Data - public static class DataSourceConfig{ - private String driverClassName; - private String url; - private String username; - private String password; - } -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/entity/Plugin2User.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/entity/Plugin2User.java deleted file mode 100644 index 13656ab..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/entity/Plugin2User.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.gitee.starblues.example.plugin2.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

- * 插件2-用户表 - *

- * - * @author starBlues - * @since 2021-05-21 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -public class Plugin2User implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 用户id - */ - @TableId(value = "user_id", type = IdType.ASSIGN_UUID) - private String userId; - - /** - * 用户名称 - */ - private String name; - - /** - * 手机号 - */ - private String phone; - - /** - * 邮箱 - */ - private String email; - - /** - * 用户名 - */ - private String username; - - /** - * 密码(加密后) - */ - private String password; - - /** - * 帐号状态(1启用, 0停用) - */ - private Integer status; - - /** - * 删除标记(1删除, 0 正常) - */ - private Integer deleted; - - /** - * 是否被锁(小于等于5表示未被锁, 大于5表示被锁) - */ - private Integer locked; - - /** - * 创建用户 - */ - private String createUser; - - /** - * 创建时间 - */ - private String gmtCreated; - - /** - * 修改用户 - */ - private String modifiedUser; - - /** - * 修改时间 - */ - private String gmtModified; - - /** - * 头像地址 - */ - private String avatar; - - /** - * 上一次登录的ip地址 - */ - private String lastLoginIp; - - /** - * 上一次登录的时间 - */ - private String lastGmtLoginTime; - - -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/extract/ExtractExampleImp3.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/extract/ExtractExampleImp3.java deleted file mode 100644 index 23910aa..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/extract/ExtractExampleImp3.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gitee.starblues.example.plugin2.extract; - -import com.gitee.starblues.annotation.Extract; -import com.gitee.starblues.example.plugin.ExtractExample; - -/** - * ExtractExample 实现1 - * @author starBlues - * @version 1.0 - * @since 2021-07-24 - */ -@Extract(bus = "example", scene = "plugin", order = 2) -public class ExtractExampleImp3 implements ExtractExample { - @Override - public Info exeInfo(Info info) { - info.setName("My is ExtractExampleImp3 of example-plugin2"); - return info; - } -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/mapper/Plugin2UserMapper.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/mapper/Plugin2UserMapper.java deleted file mode 100644 index b009a27..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/mapper/Plugin2UserMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gitee.starblues.example.plugin2.mapper; - -import com.gitee.starblues.example.plugin2.entity.Plugin2User; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Mapper; - -/** - *

- * 插件2-用户表 Mapper 接口 - *

- * - * @author starBlues - * @since 2021-05-21 - */ -@Mapper -public interface Plugin2UserMapper extends BaseMapper { - - - -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/rest/Plugin2UserResource.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/rest/Plugin2UserResource.java deleted file mode 100644 index df61b8c..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/rest/Plugin2UserResource.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gitee.starblues.example.plugin2.rest; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.gitee.starblues.example.plugin2.entity.Plugin2User; -import com.gitee.starblues.example.plugin2.mapper.Plugin2UserMapper; -import com.gitee.starblues.example.plugin2.service.Plugin2UserService; -import io.swagger.annotations.Api; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - - -/** - * user 接口 - * @author starBlues - * @version 1.0 - * @since 2021-05-25 - */ -@RestController -@RequestMapping("/user") -@Api -@AllArgsConstructor -public class Plugin2UserResource { - - private final Plugin2UserService plugin2UserService; - - @GetMapping - public Page getPage(@RequestParam("currentPage") Integer currentPage, - @RequestParam("pageSize") Integer pageSize){ - Page plugin2UserPage = new Page<>(currentPage, pageSize); - return plugin2UserService.page(plugin2UserPage); - } - - - @PostMapping - public Plugin2User addUser(@RequestBody Plugin2User plugin2User){ - plugin2UserService.save(plugin2User); - return plugin2User; - } - -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/Plugin2UserService.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/Plugin2UserService.java deleted file mode 100644 index 3b8aa71..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/Plugin2UserService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gitee.starblues.example.plugin2.service; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.gitee.starblues.example.plugin2.entity.Plugin2User; -import com.baomidou.mybatisplus.extension.service.IService; -import com.gitee.starblues.example.plugin2.mapper.Plugin2UserMapper; - -/** - *

- * 插件2-用户表 服务类 - *

- * - * @author starBlues - * @since 2021-05-21 - */ -public interface Plugin2UserService extends IService { -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/ExtractExample3.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/ExtractExample3.java deleted file mode 100644 index 9f1386b..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/ExtractExample3.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gitee.starblues.example.plugin2.service.impl; - -import com.gitee.starblues.annotation.Extract; -import com.gitee.starblues.example.plugin.ExtractExample; - -/** - * @author zhangzhuo@acoinfo.com - * @version 1.0 - * @since 2021-07-23 - */ -@Extract(bus = "PluginExtract2", order = 1) -public class ExtractExample3 implements ExtractExample { - - @Override - public Info exeInfo(Info info) { - info.setName("ExtractExample3"); - return info; - } -} diff --git a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/Plugin2UserServiceImpl.java b/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/Plugin2UserServiceImpl.java deleted file mode 100644 index dff8e54..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/java/com/gitee/starblues/example/plugin2/service/impl/Plugin2UserServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gitee.starblues.example.plugin2.service.impl; - -import com.gitee.starblues.example.plugin2.entity.Plugin2User; -import com.gitee.starblues.example.plugin2.mapper.Plugin2UserMapper; -import com.gitee.starblues.example.plugin2.service.Plugin2UserService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -/** - *

- * 插件2-用户表 服务实现类 - *

- * - * @author starBlues - * @since 2021-05-21 - */ -@Service -public class Plugin2UserServiceImpl extends ServiceImpl implements Plugin2UserService { - -} diff --git a/example-plugins-dir2/example-plugin2/src/main/resources/plugin.properties b/example-plugins-dir2/example-plugin2/src/main/resources/plugin.properties deleted file mode 100644 index 33e6613..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/resources/plugin.properties +++ /dev/null @@ -1,7 +0,0 @@ -plugin.id=example-plugin2 -plugin.class=com.gitee.starblues.example.plugin2.ExamplePlugin2 -plugin.version=2.4.3-SNAPSHOT -plugin.provider=starblues -plugin.description=案例插件2 -plugin.configFileName=plugin2.yml -plugin.configFileProfile=dev \ No newline at end of file diff --git a/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-dev.yml b/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-dev.yml deleted file mode 100644 index d455387..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-dev.yml +++ /dev/null @@ -1,6 +0,0 @@ -plugin: - datasource: - driverClassName: com.mysql.cj.jdbc.Driver - jdbcUrl: jdbc:mysql://127.0.0.1:3306/plugin-test-example?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC - username: root - password: 123456 diff --git a/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-mapper/Plugin2UserMapper.xml b/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-mapper/Plugin2UserMapper.xml deleted file mode 100644 index 7f7b1f0..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-mapper/Plugin2UserMapper.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - user_id, name, phone, email, username, password, status, deleted, locked, create_user, gmt_created, modified_user, gmt_modified, avatar, last_login_ip, last_gmt_login_time - - - diff --git a/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-prod.yml b/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-prod.yml deleted file mode 100644 index d455387..0000000 --- a/example-plugins-dir2/example-plugin2/src/main/resources/plugin2-prod.yml +++ /dev/null @@ -1,6 +0,0 @@ -plugin: - datasource: - driverClassName: com.mysql.cj.jdbc.Driver - jdbcUrl: jdbc:mysql://127.0.0.1:3306/plugin-test-example?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC - username: root - password: 123456 diff --git a/package.bat b/package.bat index eced6c3..3700534 100644 --- a/package.bat +++ b/package.bat @@ -2,7 +2,7 @@ REM windows package REM package ::如果不需要进行maven打包, 则使用 REM 注释掉该行 -call mvn clean install -Dmaven.test.skip=true +call mvn clean install -Dmaven.test.skip=true -P prod REM del dist rmdir dist /s /q @@ -10,28 +10,21 @@ rmdir dist /s /q REM create dist mkdir dist mkdir dist\plugins -mkdir dist\plugin-configs -mkdir dist\lib REM copy main program and config -xcopy example-main\target\example-main-*.jar dist /s /i +xcopy example-main\target\example-main-*-repackage.jar dist /s /i xcopy example-main\src\main\resources\application-prod.yml dist /s xcopy example-main\target\lib\* dist\lib /y /e /i /q REM copy plugin and config -xcopy example-plugins-dir1\example-jpa\target\*.jar dist\plugins /s -xcopy example-plugins-dir1\example-jpa\src\main\resources\*-prod.yml dist\plugin-configs /s +xcopy example-plugins-basic\example-basic-1\target\*-repackage.jar dist\plugins /s +xcopy example-plugins-basic\example-basic-2\target\*-repackage.jar dist\plugins /s -xcopy example-plugins-dir1\example-basic\target\*.jar dist\plugins /s -xcopy example-plugins-dir1\example-basic\src\main\resources\*-prod.yml dist\plugin-configs /s +xcopy example-plugins-db\example-jpa\target\*-repackage.jar dist\plugins /s +xcopy example-plugins-db\example-mybatis-plus\target\*-repackage.jar dist\plugins /s -xcopy example-plugins-dir2\example-plugin1\target\*.jar dist\plugins /s -xcopy example-plugins-dir2\example-plugin1\src\main\resources\*-prod.yml dist\plugin-configs /s -xcopy example-plugins-dir2\example-plugin1\src\main\resources\plugin1-log.xml dist\plugin-configs /s - -xcopy example-plugins-dir2\example-plugin2\target\*.jar dist\plugins /s -xcopy example-plugins-dir2\example-plugin2\src\main\resources\*-prod.yml dist\plugin-configs /s +::xcopy example-plugins-cloud\example-plugin-cloud-nacos\target\*-repackage.jar dist\plugins /s REM copy bin xcopy bin\* dist\ /s @@ -39,7 +32,9 @@ xcopy bin\* dist\ /s cd dist REM run main -rename example-main-*.jar example.jar +rename example-main-*-repackage.jar example.jar rename application-prod.yml application.yml +start explorer . + :: 运行命令为: java -jar example.jar --spring.config.location=application.yml \ No newline at end of file diff --git a/pom.xml b/pom.xml index 107a7e2..1079527 100644 --- a/pom.xml +++ b/pom.xml @@ -14,17 +14,32 @@ example-main - example-plugin-dependency - example-plugins-dir1 - example-plugins-dir2 + example-plugins-basic + example-plugins-db + example-plugins-cloud + + + dev + + true + + + dev + + + + + prod + + prod + + + + - - org.springframework.boot - spring-boot-maven-plugin - maven-compiler-plugin diff --git a/sql/plugin-test-example.sql b/sql/plugin-test-example.sql index aa60bc8..27ab0d1 100644 --- a/sql/plugin-test-example.sql +++ b/sql/plugin-test-example.sql @@ -47,8 +47,8 @@ INSERT INTO `main_user` VALUES ('1', 'admin', '16666666666', '123@qq.com', 'admi -- ---------------------------- -- Table structure for plugin1_user -- ---------------------------- -DROP TABLE IF EXISTS `plugin1_user`; -CREATE TABLE `plugin1_user` ( +DROP TABLE IF EXISTS `mp_plugin_user`; +CREATE TABLE `mp_plugin_user` ( `user_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户id', `name` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名称', `phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号', @@ -71,38 +71,10 @@ CREATE TABLE `plugin1_user` ( -- ---------------------------- -- Records of plugin1_user -- ---------------------------- -INSERT INTO `plugin1_user` VALUES ('1', '1', '1', '1', '1', '1', '1', '0', '0', '1', '1', '1', '1', '1', '1', '1'); -INSERT INTO `plugin1_user` VALUES ('ca49e3f196c428723f31e06b77731e6b', 'name-1', null, null, 'plugin1-1', '1', '1', '0', '2', 'admin', '2021-07-24 08:38:40', 'admin', '2021-07-24 08:38:40', null, null, null); +INSERT INTO `mp_plugin_user` VALUES ('1', '1', '1', '1', '1', '1', '1', '0', '0', '1', '1', '1', '1', '1', '1', '1'); +INSERT INTO `mp_plugin_user` VALUES ('ca49e3f196c428723f31e06b77731e6b', 'name-1', null, null, 'plugin1-1', '1', '1', '0', '2', 'admin', '2021-07-24 08:38:40', 'admin', '2021-07-24 08:38:40', null, null, null); -- ---------------------------- --- Table structure for plugin2_user --- ---------------------------- -DROP TABLE IF EXISTS `plugin2_user`; -CREATE TABLE `plugin2_user` ( - `user_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户id', - `name` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名称', - `phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号', - `email` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '邮箱', - `username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名', - `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码(加密后)', - `status` int(1) NOT NULL DEFAULT '1' COMMENT '帐号状态(1启用, 0停用)', - `deleted` int(1) NOT NULL DEFAULT '0' COMMENT '删除标记(1删除, 0 正常)', - `locked` int(6) NOT NULL DEFAULT '0' COMMENT '是否被锁(小于等于5表示未被锁, 大于5表示被锁)', - `create_user` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '创建用户', - `gmt_created` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '创建时间', - `modified_user` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '修改用户', - `gmt_modified` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '修改时间', - `avatar` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '头像地址', - `last_login_ip` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '上一次登录的ip地址', - `last_gmt_login_time` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '上一次登录的时间', - PRIMARY KEY (`user_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='插件2-用户表'; - --- ---------------------------- --- Records of plugin2_user --- ---------------------------- -INSERT INTO `plugin2_user` VALUES ('1', 'admin', '16666666666', '123@qq.com', 'admin', '$2a$10$IqjSzOzTpMX79DnxS7aBz.A1.uqR.DvuvMtx9TaGmwpsxgJDFW8wS', '1', '0', '0', 'admin', '2021-01-01 08:08:08', 'admin', 'admin', '2e418339355940a9b83f72d597a6da2c.jpg', '127.0.0.1', '2021-02-02 20:14:21'); - -- ---------------------------- -- Table structure for plugin_jpa_user -- ---------------------------- -- Gitee