diff --git a/README.md b/README.md
index 738aded98a386e19bc33d7f5aee2a689a062813d..f0e04f43ee8819b270ae74e5537d8a1b85a66df9 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@
 
 - 支持在插件中自定义`Mapper`接口、`Mapper xml` 以及对应的实体`bean`
 
-- 支持集成`Mybatis-Plus`、`Tk-Mybatis`
+- 支持集成`Mybatis`、`Mybatis-Plus`、`Tk-Mybatis`
 
 - 支持可在插件中独立配置数据源
 
diff --git a/example/basic-example/basic-example-main/pom.xml b/example/basic-example/basic-example-main/pom.xml
index d9ae937011b94431ab84157365dc0d46030041aa..119c86efe6500d111e6c9c2901e3535e5afa6064 100644
--- a/example/basic-example/basic-example-main/pom.xml
+++ b/example/basic-example/basic-example-main/pom.xml
@@ -7,7 +7,7 @@
     
         org.springframework.boot
         spring-boot-starter-parent
-        2.0.3.RELEASE
+        2.4.2
          
     
 
diff --git a/example/basic-example/basic-example-main/src/main/java/com/basic/example/main/config/PluginConfiguration.java b/example/basic-example/basic-example-main/src/main/java/com/basic/example/main/config/PluginConfiguration.java
index 6557abf5971fac8bca5a14fd797d4b6aa5bdfb7f..16eb1c9bffa4815725819aed57604036254b2c22 100644
--- a/example/basic-example/basic-example-main/src/main/java/com/basic/example/main/config/PluginConfiguration.java
+++ b/example/basic-example/basic-example-main/src/main/java/com/basic/example/main/config/PluginConfiguration.java
@@ -1,12 +1,14 @@
 package com.basic.example.main.config;
 
 import com.gitee.starblues.integration.DefaultIntegrationConfiguration;
+import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import org.pf4j.RuntimeMode;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 import java.util.Set;
 
 
@@ -124,7 +126,6 @@ public class PluginConfiguration extends DefaultIntegrationConfiguration {
     }
 
 
-
     @Override
     public String toString() {
         return "PluginArgConfiguration{" +
diff --git a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/PluginListener1.java b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/PluginListener1.java
index c613b212b57487cc051d9536a1b378a9f4e5c9ef..477d14944b970964a5be45d0569445c524bcea97 100644
--- a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/PluginListener1.java
+++ b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/PluginListener1.java
@@ -1,8 +1,10 @@
 package com.basic.example.plugin1;
 
+import com.basic.example.main.config.PluginConfiguration;
 import com.basic.example.plugin1.service.HelloService;
 import com.gitee.starblues.realize.BasePlugin;
 import com.gitee.starblues.realize.OneselfListener;
+import com.gitee.starblues.realize.PluginUtils;
 import com.gitee.starblues.utils.OrderPriority;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -18,9 +20,11 @@ public class PluginListener1 implements OneselfListener {
     private static final Logger logger = LoggerFactory.getLogger(PluginListener1.class);
 
     private final HelloService helloService;
+    private final PluginUtils pluginUtils;
 
-    public PluginListener1(HelloService helloService) {
+    public PluginListener1(HelloService helloService, PluginUtils pluginUtils) {
         this.helloService = helloService;
+        this.pluginUtils = pluginUtils;
     }
 
 
@@ -31,12 +35,16 @@ public class PluginListener1 implements OneselfListener {
 
     @Override
     public void startEvent(BasePlugin basePlugin) {
+        PluginConfiguration mainBean = pluginUtils.getMainBean(PluginConfiguration.class);
+        System.out.println(mainBean);
         logger.info("PluginListener1 {} start. helloService : {} .", basePlugin.getWrapper().getPluginId(),
                 helloService.sayService2());
     }
 
     @Override
     public void stopEvent(BasePlugin basePlugin) {
+        PluginConfiguration mainBean = pluginUtils.getMainBean(PluginConfiguration.class);
+        System.out.println(mainBean);
         logger.info("PluginListener1 {} stop. helloService : {} .", basePlugin.getWrapper().getPluginId(),
                 helloService.sayService2());
     }
diff --git a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/config/ConfigBean.java b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/config/ConfigBean.java
new file mode 100644
index 0000000000000000000000000000000000000000..23d56b9d0ba29e8596beea2b3c8ff0615d05b0c9
--- /dev/null
+++ b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/config/ConfigBean.java
@@ -0,0 +1,54 @@
+package com.basic.example.plugin1.config;
+
+import com.basic.example.main.config.PluginConfiguration;
+import com.gitee.starblues.realize.PluginUtils;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author starBlues
+ * @version 1.0
+ */
+@Configuration
+public class ConfigBean {
+
+    @Bean
+    public ConfigBeanTest c(PluginUtils pluginUtils){
+        PluginConfiguration mainBean = pluginUtils.getMainBean(PluginConfiguration.class);
+        System.out.println("configTest: mainBean=" + mainBean);
+        ConfigBeanTest configBeanTest = new ConfigBeanTest();
+        configBeanTest.name = "hello";
+        configBeanTest.age = 16;
+        return configBeanTest;
+    }
+
+    public static class ConfigBeanTest{
+        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 "ConfigBeanTest{" +
+                    "name='" + name + '\'' +
+                    ", age=" + age +
+                    '}';
+        }
+    }
+
+}
diff --git a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/rest/HelloPlugin1.java b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/rest/HelloPlugin1.java
index ddc966fbbc7fa81f278bf85eeb5cca140d606e58..56c9aea392bb429b06bb48e37720b275d3571c70 100644
--- a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/rest/HelloPlugin1.java
+++ b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/rest/HelloPlugin1.java
@@ -1,9 +1,12 @@
 package com.basic.example.plugin1.rest;
 
+import com.basic.example.plugin1.config.ConfigBean;
 import com.basic.example.plugin1.config.PluginConfig1;
 import com.basic.example.plugin1.service.HelloService;
+import com.gitee.starblues.realize.PluginUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.pf4j.PluginDescriptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -26,6 +29,11 @@ public class HelloPlugin1 {
     @Autowired
     private PluginConfig1 pluginConfig1;
 
+    @Autowired
+    private PluginUtils pluginUtils;
+
+    @Autowired
+    private ConfigBean.ConfigBeanTest configBeanTest;
 
     @GetMapping("plugin1")
     @ApiOperation(value = "hello", notes = "hello")
@@ -50,6 +58,14 @@ public class HelloPlugin1 {
         return helloService.sayService2();
     }
 
+    @GetMapping("pluginInfo")
+    public PluginDescriptor getPluginInfo(){
+        return pluginUtils.getPluginDescriptor();
+    }
 
+    @GetMapping("configBeanTest")
+    public ConfigBean.ConfigBeanTest getConfigBeanTest(){
+        return configBeanTest;
+    }
 
 }
diff --git a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/ConsoleNameImpl.java b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/ConsoleNameImpl.java
index 3c86405e299fec49ceee099b75867cbe2003c3ba..6e79ff42221af1ec8d7d6f2efbc00c06ec1bfbc0 100644
--- a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/ConsoleNameImpl.java
+++ b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/ConsoleNameImpl.java
@@ -2,6 +2,7 @@ package com.basic.example.plugin1.service;
 
 import com.basic.example.main.config.PluginConfiguration;
 import com.basic.example.main.plugin.ConsoleName;
+import com.gitee.starblues.realize.PluginUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -15,10 +16,11 @@ import org.springframework.stereotype.Component;
 public class ConsoleNameImpl implements ConsoleName {
 
     @Autowired
-    private PluginConfiguration pluginConfiguration;
+    private PluginUtils pluginUtils;
 
     @Override
     public String name() {
+        PluginConfiguration pluginConfiguration = pluginUtils.getMainBean(PluginConfiguration.class);
         return "My name is Plugin1" + "->pluginArgConfiguration :" + pluginConfiguration.toString();
     }
 }
diff --git a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/HelloService.java b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/HelloService.java
index 12205b1fb12cc588788b127b14a5de836671d3ea..7bdbeba381b9a699e989e542507caa887c7206dd 100644
--- a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/HelloService.java
+++ b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/HelloService.java
@@ -16,7 +16,6 @@ public class HelloService {
     private final PluginConfig1 pluginConfig1;
     private final Service2 service2;
 
-    @Autowired
     public HelloService(PluginConfig1 pluginConfig1, Service2 service2) {
         this.pluginConfig1 = pluginConfig1;
         this.service2 = service2;
diff --git a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/SupplierService.java b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/SupplierService.java
index a698a622cec019ff8c3f5f9461d3a5cbad7fd874..eb2c76eb104d6fc5cf70c658f959f27a4178bd64 100644
--- a/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/SupplierService.java
+++ b/example/basic-example/plugins/basic-example-plugin1/src/main/java/com/basic/example/plugin1/service/SupplierService.java
@@ -40,6 +40,9 @@ public class SupplierService {
         return key;
     }
 
+    public String notArg(){
+        return "noArg";
+    }
 
     public CommonReturn commonTest(String key, CommonParam commonParam){
         System.out.println(commonParam);
diff --git a/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/rest/ProxyController.java b/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/rest/ProxyController.java
index cb269beea3e1fd68b83a4e495f3d7ef015da01e4..3bf98de9d7f5d80db95ea204ba8cb85298ea0426 100644
--- a/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/rest/ProxyController.java
+++ b/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/rest/ProxyController.java
@@ -28,6 +28,11 @@ public class ProxyController {
     }
 
 
+    @GetMapping("noArg")
+    public String noArg(){
+        return callerService.notArg();
+    }
+
     @GetMapping("add")
     public Integer add(){
         return callerService.add(1, 2);
diff --git a/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/CallerService.java b/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/CallerService.java
index 34a30fd04449548fadfe432ac9899c82a7315a01..1a156d960b68a3e73fede68b63645c2156c39204 100644
--- a/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/CallerService.java
+++ b/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/CallerService.java
@@ -10,7 +10,7 @@ import com.gitee.starblues.annotation.Caller;
  * @author starBlues
  * @version 1.0
  */
-@Caller("SupplierService")
+@Caller(value = "SupplierService")
 public interface CallerService {
 
     PluginInfo getConfig(String key);
@@ -22,6 +22,8 @@ public interface CallerService {
 
     CommonReturn commonTest(String key, CommonParam commonParam);
 
+    String notArg();
+
     class CallerInfo{
         private String name;
         private PluginInfo pluginInfo;
diff --git a/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/HelloService.java b/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/HelloService.java
index 7e370813adef7e34cf0a388d94ba1dca23993605..c225d13b5c7413be8b0867968afdf499b6e95be7 100644
--- a/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/HelloService.java
+++ b/example/basic-example/plugins/basic-example-plugin2/src/main/java/com/basic/example/plugin2/service/HelloService.java
@@ -16,7 +16,7 @@ public class HelloService {
     private final Plugin2Config plugin2Config;
     private final Service2 service2;
 
-    @Autowired
+
     public HelloService(Plugin2Config plugin2Config, Service2 service2) {
         this.plugin2Config = plugin2Config;
         this.service2 = service2;
diff --git a/example/integration-mybatis/integration-mybatis-main/src/main/java/com/mybatis/main/config/PluginBeanConfig.java b/example/integration-mybatis/integration-mybatis-main/src/main/java/com/mybatis/main/config/PluginBeanConfig.java
index 77444a5616cfc071c773260ead6d0e741cb00c88..1c0b551965ea0e8c1ec6fded3e556be460b71bec 100644
--- a/example/integration-mybatis/integration-mybatis-main/src/main/java/com/mybatis/main/config/PluginBeanConfig.java
+++ b/example/integration-mybatis/integration-mybatis-main/src/main/java/com/mybatis/main/config/PluginBeanConfig.java
@@ -5,6 +5,7 @@ import com.gitee.starblues.extension.resources.StaticResourceExtension;
 import com.gitee.starblues.integration.*;
 import com.gitee.starblues.integration.application.AutoPluginApplication;
 import com.gitee.starblues.integration.application.PluginApplication;
+import com.google.common.collect.Sets;
 import org.pf4j.RuntimeMode;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -59,6 +60,8 @@ public class PluginBeanConfig {
                 .pluginRestPathPrefix("/api/plugin")
                 .enablePluginIdRestPathPrefix(true)
                 .enableSwaggerRefresh(true)
+                .enablePluginIds(Sets.newHashSet("integration-mybatis-plugin1"))
+                .disablePluginIds(Sets.newHashSet("integration-mybatis-plugin2"))
                 .build();
     }
 
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin1/pom.xml b/example/integration-mybatis/plugins/integration-mybatis-plugin1/pom.xml
index fd0225d080c242a28e24ead3fea52d675743608e..41fa0f398e298ed261f5b48b37bc050c33d2d081 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin1/pom.xml
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin1/pom.xml
@@ -24,26 +24,6 @@
 
 
     
-        
-        
-            com.baomidou
-            mybatis-plus-generator
-            ${mybatis-plus.version}
-        
-
-        
-        
-            org.apache.velocity
-            velocity-engine-core
-            ${velocity.version}
-        
-
-        
-            org.mybatis.spring.boot
-            mybatis-spring-boot-starter
-            ${mybatis-spring-boot-starter.version}
-        
-
     
 
 
\ No newline at end of file
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/MybatisConfig.java b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/MybatisConfig.java
index 4e57c31b1a4b7e6ee16eb9804c3132947870b7ff..fba3cfc0be6584d0f3b9b0788ed0b6265184b230 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/MybatisConfig.java
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/MybatisConfig.java
@@ -1,5 +1,6 @@
 package com.mybatis.plugin1;
 
+import com.gitee.starblues.annotation.ConfigDefinition;
 import com.gitee.starblues.extension.mybatis.SpringBootMybatisConfig;
 import org.springframework.stereotype.Component;
 
@@ -11,7 +12,7 @@ import java.util.Set;
  * @version 1.0
  * @since 2020-12-18
  */
-@Component
+@ConfigDefinition
 public class MybatisConfig implements SpringBootMybatisConfig {
 
     @Override
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/ResourceConfig.java b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/ResourceConfig.java
index be69126fe4a781ac54bca95ab0d28349c07df9de..17784c8cd48f01567be43ac4da7f870762da7d8e 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/ResourceConfig.java
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/ResourceConfig.java
@@ -1,5 +1,6 @@
 package com.mybatis.plugin1;
 
+import com.gitee.starblues.annotation.ConfigDefinition;
 import com.gitee.starblues.extension.resources.StaticResourceConfig;
 import com.gitee.starblues.extension.resources.thymeleaf.SpringBootThymeleafConfig;
 import com.gitee.starblues.extension.resources.thymeleaf.ThymeleafConfig;
@@ -13,7 +14,7 @@ import java.util.Set;
  * @version 1.0
  * @since 2020-12-19
  */
-@Component
+@ConfigDefinition
 public class ResourceConfig implements StaticResourceConfig, SpringBootThymeleafConfig {
     @Override
     public Set locations() {
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/config/PluginConfigBean.java b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/config/PluginConfigBean.java
new file mode 100644
index 0000000000000000000000000000000000000000..9af63cdf24d6ffa7a51c8ee1f44665d5eae3ae95
--- /dev/null
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/config/PluginConfigBean.java
@@ -0,0 +1,28 @@
+package com.mybatis.plugin1.config;
+
+import com.gitee.starblues.realize.ConfigBean;
+
+/**
+ * @author starBlues
+ * @version 1.0
+ */
+public class PluginConfigBean implements ConfigBean {
+
+    private final Plugin1Config plugin1Config;
+
+    public PluginConfigBean(Plugin1Config plugin1Config) {
+        this.plugin1Config = plugin1Config;
+    }
+
+    @Override
+    public void initialize() throws Exception {
+        System.out.println("初始化Bean");
+        System.out.println(plugin1Config);
+    }
+
+    @Override
+    public void destroy() throws Exception {
+        System.out.println("销毁Bean");
+        System.out.println(plugin1Config);
+    }
+}
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/Plugin1Controller.java b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/Plugin1Controller.java
index b82a9e82321c8390b69675d94de72883dd386d8a..4e2748c8efdb0084d1ff4544cdb3883efbbd45cb 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/Plugin1Controller.java
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/Plugin1Controller.java
@@ -1,6 +1,5 @@
 package com.mybatis.plugin1.rest;
 
-import com.baomidou.mybatisplus.generator.config.GlobalConfig;
 import com.mybatis.plugin1.entity.Plugin1;
 import com.mybatis.plugin1.mapper.Plugin1Mapper;
 import com.mybatis.plugin1.service.TranServiec;
@@ -47,7 +46,6 @@ public class Plugin1Controller {
         if(!StringUtils.isEmpty(name)){
             p.setName(name);
         }
-        GlobalConfig config = new GlobalConfig();
         return pluginMapperl.getByCondition(p);
     }
 
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/UserController.java b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/UserController.java
index d1fc6045bd71471c095b228624dd8e8ec35bfe3b..6ff4acff3c7b34dcd9ee90e42922a4c10e6cdf48 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/UserController.java
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin1/src/main/java/com/mybatis/plugin1/rest/UserController.java
@@ -1,5 +1,6 @@
 package com.mybatis.plugin1.rest;
 
+import com.gitee.starblues.realize.PluginUtils;
 import com.mybatis.main.entity.User;
 import com.mybatis.main.mapper.UserMapper;
 import com.mybatis.main.service.TestTestTransactional;
@@ -22,10 +23,12 @@ public class UserController {
     private final UserMapper userMapper;
     private final TestTestTransactional testTestTransactional;
 
+
+
     @Autowired
-    public UserController(UserMapper userMapper, TestTestTransactional testTestTransactional) {
-        this.userMapper = userMapper;
-        this.testTestTransactional = testTestTransactional;
+    public UserController(PluginUtils pluginUtils) {
+        this.userMapper = pluginUtils.getMainBean(UserMapper.class);
+        this.testTestTransactional = pluginUtils.getMainBean(TestTestTransactional.class);
     }
 
     @GetMapping("/list")
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/MybatisConfig2.java b/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/MybatisConfig2.java
index efa972a2f3a56ea7d17bad6a0e8e85e737eaa3d4..8daa7a8311a8b040ec04fa473b296064ec7a6051 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/MybatisConfig2.java
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/MybatisConfig2.java
@@ -1,5 +1,6 @@
 package com.mybatis.plugin2;
 
+import com.gitee.starblues.annotation.ConfigDefinition;
 import com.gitee.starblues.extension.mybatis.SpringBootMybatisConfig;
 import org.springframework.stereotype.Component;
 
@@ -11,7 +12,7 @@ import java.util.Set;
  * @version 1.0
  * @since 2020-12-18
  */
-@Component
+@ConfigDefinition
 public class MybatisConfig2 implements SpringBootMybatisConfig {
 
     @Override
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/Plugin2Listener.java b/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/Plugin2Listener.java
index ea5dfa6e7e03c81151079add506d21cbdbbee802..4e5aebb823a74010af368fdb6017f5ddf746eeb7 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/Plugin2Listener.java
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/Plugin2Listener.java
@@ -2,10 +2,12 @@ package com.mybatis.plugin2;
 
 import com.gitee.starblues.realize.BasePlugin;
 import com.gitee.starblues.realize.OneselfListener;
+import com.gitee.starblues.realize.PluginUtils;
 import com.gitee.starblues.utils.OrderPriority;
 import com.mybatis.main.mapper.RoleMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * description
@@ -19,8 +21,9 @@ public class Plugin2Listener implements OneselfListener {
 
     private final RoleMapper roleMapper;
 
-    public Plugin2Listener(RoleMapper roleMapper) {
-        this.roleMapper = roleMapper;
+    @Autowired
+    public Plugin2Listener(PluginUtils pluginUtils){
+        roleMapper = pluginUtils.getMainBean(RoleMapper.class);
     }
 
     @Override
diff --git a/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/rest/RoleController.java b/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/rest/RoleController.java
index 1d8b1e9a52b8660ec584637b8005183b7e7c1b82..dfc92a332288dfe3178e3f5a29a62a1c6fe83206 100644
--- a/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/rest/RoleController.java
+++ b/example/integration-mybatis/plugins/integration-mybatis-plugin2/src/main/java/com/mybatis/plugin2/rest/RoleController.java
@@ -1,5 +1,6 @@
 package com.mybatis.plugin2.rest;
 
+import com.gitee.starblues.realize.PluginUtils;
 import com.mybatis.main.entity.Role;
 import com.mybatis.main.mapper.RoleMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,8 +23,8 @@ public class RoleController {
     private final RoleMapper roleMapper;
 
     @Autowired
-    public RoleController(RoleMapper roleMapper) {
-        this.roleMapper = roleMapper;
+    public RoleController(PluginUtils pluginUtils){
+        roleMapper = pluginUtils.getMainBean(RoleMapper.class);
     }
 
     @GetMapping("/list")
diff --git a/example/integration-mybatisplus/integration-mybatisplus-main/pom.xml b/example/integration-mybatisplus/integration-mybatisplus-main/pom.xml
index f65a1a0e3a88143d9a787314f97708abd47c6818..fce0dc9f661ac28f8bb936466c0db860d91e84c2 100644
--- a/example/integration-mybatisplus/integration-mybatisplus-main/pom.xml
+++ b/example/integration-mybatisplus/integration-mybatisplus-main/pom.xml
@@ -7,7 +7,7 @@
     
         org.springframework.boot
         spring-boot-starter-parent
-        2.0.3.RELEASE
+        2.4.2
          
     
 
diff --git a/example/integration-mybatisplus/integration-mybatisplus-main/src/main/java/com/mybatisplus/main/config/PluginBeanConfig.java b/example/integration-mybatisplus/integration-mybatisplus-main/src/main/java/com/mybatisplus/main/config/PluginBeanConfig.java
index b896a397903fefc34c78dc7f41e04c202da9dc85..b9e39dd9e51a97524462c3d8e294c892dd539f12 100644
--- a/example/integration-mybatisplus/integration-mybatisplus-main/src/main/java/com/mybatisplus/main/config/PluginBeanConfig.java
+++ b/example/integration-mybatisplus/integration-mybatisplus-main/src/main/java/com/mybatisplus/main/config/PluginBeanConfig.java
@@ -17,7 +17,6 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 public class PluginBeanConfig {
 
-
     /**
      * 定义插件应用。使用可以注入它操作插件。
      * @return PluginApplication
@@ -31,5 +30,4 @@ public class PluginBeanConfig {
         ));
         return pluginApplication;
     }
-
 }
diff --git a/example/integration-mybatisplus/integration-mybatisplus-main/src/main/resources/application-dev.yml b/example/integration-mybatisplus/integration-mybatisplus-main/src/main/resources/application-dev.yml
index d07e143ec314f784c4d4d5cd3058a9bdaa71a88a..9a4d4e72bc83bc6c2d9c7fa47fdced51c3da11c0 100644
--- a/example/integration-mybatisplus/integration-mybatisplus-main/src/main/resources/application-dev.yml
+++ b/example/integration-mybatisplus/integration-mybatisplus-main/src/main/resources/application-dev.yml
@@ -16,6 +16,6 @@ mybatis-plus:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 
 plugin:
-  runMode: prod
-  pluginPath: D:\code\open-source-code\springboot-plugin-framework-parent\example\integration-mybatisplus\dist\plugins
+  runMode: dev
+  pluginPath: ./example/integration-mybatisplus/plugins
   pluginConfigFilePath:
\ No newline at end of file
diff --git a/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/MybatisPlusConfig.java b/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/MybatisPlusConfig2.java
similarity index 41%
rename from example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/MybatisPlusConfig.java
rename to example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/MybatisPlusConfig2.java
index dea3e3f22983a9b5752f3f8cf7a2e49c5d935477..df5b71b7c7d11428f23b94808b9e9b2458b597ae 100644
--- a/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/MybatisPlusConfig.java
+++ b/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/MybatisPlusConfig2.java
@@ -1,9 +1,8 @@
 package com.mybatisplus.plugin;
 
-import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import com.gitee.starblues.annotation.ConfigDefinition;
 import com.gitee.starblues.extension.mybatis.mybatisplus.SpringBootMybatisPlusConfig;
 import com.google.common.collect.Sets;
-import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
 import org.springframework.stereotype.Component;
 
 import java.util.Set;
@@ -13,8 +12,8 @@ import java.util.Set;
  * @version 1.0
  * @since 2020-12-14
  */
-@Component
-public class MybatisPlusConfig implements SpringBootMybatisPlusConfig {
+@ConfigDefinition("")
+public class MybatisPlusConfig2 implements SpringBootMybatisPlusConfig {
     @Override
     public Set entityPackage() {
         return Sets.newHashSet("com.mybatisplus.plugin.entity");
@@ -25,17 +24,4 @@ public class MybatisPlusConfig implements SpringBootMybatisPlusConfig {
         return Sets.newHashSet("classpath:mapper/*Mapper.xml");
     }
 
-    @Override
-    public void oneselfConfig(MybatisSqlSessionFactoryBean sqlSessionFactoryBean) {
-        MysqlDataSource mysqlDataSource = new MysqlDataSource();
-        mysqlDataSource.setURL("jdbc:mysql://127.0.0.1:3306/ac_identity_auth?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
-        mysqlDataSource.setUser("root");
-        mysqlDataSource.setPassword("root");
-        sqlSessionFactoryBean.setDataSource(mysqlDataSource);
-    }
-
-    @Override
-    public boolean enableOneselfConfig() {
-        return true;
-    }
 }
diff --git a/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/rest/AppController.java b/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/rest/AppController.java
index 98905d047f1e52ed36be1ba49f68149c86d8ed34..89da14b1b921d5ae434df17df420bf9ed8425387 100644
--- a/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/rest/AppController.java
+++ b/example/integration-mybatisplus/plugins/integration-mybatisplus-plugin/src/main/java/com/mybatisplus/plugin/rest/AppController.java
@@ -1,5 +1,7 @@
 package com.mybatisplus.plugin.rest;
 
+import com.mybatisplus.plugin.A;
+import com.mybatisplus.plugin.MybatisPlusPlugin;
 import com.mybatisplus.plugin.entity.App;
 import com.mybatisplus.plugin.entity.PluginData;
 import com.mybatisplus.plugin.mapper.AppMapper;
@@ -24,6 +26,9 @@ public class AppController {
     @Autowired
     private AppMapper appMapper;
 
+    @Autowired
+    private A a;
+
 
     @GetMapping
     public List getAll(){
@@ -31,6 +36,12 @@ public class AppController {
     }
 
 
+
+    @GetMapping("a")
+    public String getA(){
+        return a.getName();
+    }
+
     @GetMapping("{version}")
     public List getAll(@PathVariable("version") Integer version){
         return appMapper.getAppVersion(version);
diff --git a/example/integration-tkmybatis/plugins/integration-tkmybatis-plugin/src/main/java/com/tkmybatis/plugin/config/TkMybatisPlusConfig.java b/example/integration-tkmybatis/plugins/integration-tkmybatis-plugin/src/main/java/com/tkmybatis/plugin/config/TkMybatisPlusConfig.java
index 838b0bec27b73810e9603719ceb1ba9996906972..bf8b5ca6f8b889425d3b9fd36be05ad14578caad 100644
--- a/example/integration-tkmybatis/plugins/integration-tkmybatis-plugin/src/main/java/com/tkmybatis/plugin/config/TkMybatisPlusConfig.java
+++ b/example/integration-tkmybatis/plugins/integration-tkmybatis-plugin/src/main/java/com/tkmybatis/plugin/config/TkMybatisPlusConfig.java
@@ -1,5 +1,6 @@
 package com.tkmybatis.plugin.config;
 
+import com.gitee.starblues.annotation.ConfigDefinition;
 import com.gitee.starblues.extension.mybatis.tkmyabtis.SpringBootTkMybatisConfig;
 import com.google.common.collect.Sets;
 import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
@@ -14,7 +15,7 @@ import java.util.Set;
  * @version 1.0
  * @since 2020-12-14
  */
-@Component
+@ConfigDefinition
 public class TkMybatisPlusConfig implements SpringBootTkMybatisConfig {
 
     @Override
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/README.md b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/README.md
index 6c328c67fe753300c491928a3e540ef7f3d4da1f..ecb5844e39a8f65f95dc0fc289a4d098f788caca 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/README.md
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/README.md
@@ -1,4 +1,9 @@
-#扩展包 - 集成SpringBoot Mybatis
+### 特性
+- 支持在插件中自定义Mapper接口、Mapper xml 以及对应的实体bean
+- 支持插件独立定义数据源
+- 支持集成 `Mybatis`
+- 支持集成 `Mybatis-Plus`
+- 支持集成`Tk-Mybatis`
 
 ### maven 仓库地址
 
@@ -77,11 +82,12 @@ public PluginApplication pluginApplication(){
 - 如果集成`mybatis-plus`, 则实现接口:`com.gitee.starblues.extension.mybatis.SpringBootMybatisPlusConfig`
 - 如果集成`tkmybatis`, 则实现接口:`com.gitee.starblues.extension.mybatis.SpringBootTkMybatisConfig`
 
+- 以上实现类添加注解`@ConfigDefinition` 
 
 例如集成mybatis-plus:
 ```java
 
-@Component
+@ConfigDefinition
 public class MybatisConfig implements SpringBootMybatisConfig {
 
     @Override
@@ -102,7 +108,7 @@ public class MybatisConfig implements SpringBootMybatisConfig {
 ```
 
 该步骤主要定义插件中的Mapper xml的位置。该位置的定义规则如下:
-
+- 注意: 插件中的xml路径不能和主程序中的xml路径在`resources`相对一致, 比如文件名都为`mapper`, 建议使用不同名称区分开
 ``` text
 xmlLocationsMatch:
 ? 匹配一个字符
@@ -205,6 +211,8 @@ public void oneselfConfig(Config config){
 
 
 ### 版本升级
+#### 2.4.0 版本
+- 修改扩展功能中配置实现类,必须新增`@ConfigDefinition` 注解
 
 #### 2.2.5 版本
 全新升级该扩展
@@ -221,6 +229,4 @@ public void oneselfConfig(Config config){
 2. 修复 Mapper.xml 中定义的 resultType 类型无法定义的bug。
     
 #### 2.0.3 版本
-1. 修复Mapper无法注入的bug. (由于springboot-plugin-framework 2.0.3 版本升级导致)
-
-
+1. 修复Mapper无法注入的bug. (由于springboot-plugin-framework 2.0.3 版本升级导致)
\ No newline at end of file
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MapperHandler.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MapperHandler.java
index 13a5d97e763aa65c1f888e6ad804c11d01b64d59..0f8e55f88661a12ded490ee226f1bbc482361b0a 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MapperHandler.java
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MapperHandler.java
@@ -1,7 +1,6 @@
 package com.gitee.starblues.extension.mybatis;
 
 import com.gitee.starblues.extension.mybatis.group.PluginMapperGroup;
-import com.gitee.starblues.factory.PluginInfoContainer;
 import com.gitee.starblues.factory.PluginRegistryInfo;
 import com.gitee.starblues.factory.process.pipe.bean.name.PluginAnnotationBeanNameGenerator;
 import org.apache.ibatis.session.SqlSessionFactory;
@@ -15,6 +14,7 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition;
 import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
 import org.springframework.beans.factory.support.BeanNameGenerator;
 import org.springframework.beans.factory.support.GenericBeanDefinition;
+import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.AnnotationConfigUtils;
 import org.springframework.context.annotation.AnnotationScopeMetadataResolver;
 import org.springframework.context.annotation.ScopeMetadata;
@@ -34,14 +34,12 @@ public class MapperHandler {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(MapperHandler.class);
 
-    private static final String MAPPER_INTERFACE_NAMES = "MapperInterfaceNames";
+    private static final String MAPPER_INTERFACE_NAMES = "MybatisMapperInterfaceNames";
 
     private final ScopeMetadataResolver scopeMetadataResolver = new AnnotationScopeMetadataResolver();
 
-    private final GenericApplicationContext applicationContext;
 
-    public MapperHandler(GenericApplicationContext applicationContext) {
-        this.applicationContext = applicationContext;
+    public MapperHandler() {
     }
 
     /**
@@ -51,6 +49,7 @@ public class MapperHandler {
      */
     public void processMapper(PluginRegistryInfo pluginRegistryInfo,
                               MapperHandler.ProcessMapper processMapper){
+        GenericApplicationContext applicationContext = pluginRegistryInfo.getPluginApplicationContext();
         List> groupClasses = pluginRegistryInfo.getGroupClasses(PluginMapperGroup.GROUP_ID);
         if(groupClasses == null || groupClasses.isEmpty()){
             return;
@@ -72,12 +71,11 @@ public class MapperHandler {
             try {
                 processMapper.process(definitionHolder, groupClass);
                 beanNames.add(beanName);
-                PluginInfoContainer.addRegisterBeanName(pluginId, beanName);
             } catch (Exception e) {
                 LOGGER.error("process mapper '{}' error. {}", groupClass.getName(), e.getMessage(), e);
             }
         }
-        pluginRegistryInfo.addProcessorInfo(MAPPER_INTERFACE_NAMES, beanNames);
+        pluginRegistryInfo.addExtension(MAPPER_INTERFACE_NAMES, beanNames);
     }
 
 
@@ -101,22 +99,6 @@ public class MapperHandler {
         definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
     }
 
-    /**
-     * 公共卸载Mapper
-     * @param pluginRegistryInfo 插件信息
-     * @throws Exception 卸载异常
-     */
-    public void unRegistryMapper(PluginRegistryInfo pluginRegistryInfo) throws Exception {
-        Set beanNames = pluginRegistryInfo.getProcessorInfo(MAPPER_INTERFACE_NAMES);
-        if(beanNames == null){
-            return;
-        }
-        String pluginId = pluginRegistryInfo.getPluginWrapper().getPluginId();
-        for (String beanName : beanNames) {
-            applicationContext.removeBeanDefinition(beanName);
-            PluginInfoContainer.removeRegisterBeanName(pluginId, beanName);
-        }
-    }
 
 
     @FunctionalInterface
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisProcessor.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisProcessor.java
index ba86fa8e1cf9e7e1fb626ddd6748dcf58a10b7c1..cd522b045239c0dd8ca9a7c7de67ec7b59dd3fe6 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisProcessor.java
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisProcessor.java
@@ -1,9 +1,8 @@
 package com.gitee.starblues.extension.mybatis;
 
-import com.gitee.starblues.extension.ExtensionConfigUtils;
 import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.factory.process.pipe.PluginPipeProcessorExtend;
-import com.gitee.starblues.utils.OrderPriority;
+import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
+import com.gitee.starblues.utils.PluginBeanUtils;
 import org.apache.ibatis.io.Resources;
 import org.apache.ibatis.mapping.DatabaseIdProvider;
 import org.apache.ibatis.plugin.Interceptor;
@@ -12,10 +11,8 @@ import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionFactoryBean;
 import org.mybatis.spring.SqlSessionTemplate;
-import org.pf4j.PluginWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.io.Resource;
 
@@ -24,16 +21,11 @@ import org.springframework.core.io.Resource;
  * @author starBlues
  * @version 2.3
  */
-public class MybatisProcessor implements PluginPipeProcessorExtend {
+public class MybatisProcessor implements PluginBeanRegistrarExtend {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(MybatisProcessor.class);
 
-    private final GenericApplicationContext applicationContext;
-    private final MapperHandler mapperHandler;
-
-    public MybatisProcessor(ApplicationContext applicationContext) {
-        this.applicationContext = (GenericApplicationContext) applicationContext;
-        this.mapperHandler = new MapperHandler(this.applicationContext);
+    public MybatisProcessor() {
     }
 
     @Override
@@ -41,21 +33,10 @@ public class MybatisProcessor implements PluginPipeProcessorExtend {
         return "MybatisProcessor";
     }
 
-    @Override
-    public OrderPriority order() {
-        return OrderPriority.getHighPriority();
-    }
-
-    @Override
-    public void initialize() throws Exception {
-
-    }
-
     @Override
     public void registry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
-        PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
-
-        SpringBootMybatisConfig config = ExtensionConfigUtils.getConfig(applicationContext, pluginWrapper.getPluginId(),
+        SpringBootMybatisConfig config = PluginBeanUtils.getObjectByInterfaceClass(
+                pluginRegistryInfo.getConfigSingletons(),
                 SpringBootMybatisConfig.class);
         if(config == null){
             return;
@@ -66,7 +47,8 @@ public class MybatisProcessor implements PluginPipeProcessorExtend {
         if(config.enableOneselfConfig()){
             config.oneselfConfig(factory);
         } else {
-            PluginFollowCoreConfig followCoreConfig = new PluginFollowCoreConfig(applicationContext);
+            GenericApplicationContext mainApplicationContext = pluginRegistryInfo.getMainApplicationContext();
+            PluginFollowCoreConfig followCoreConfig = new PluginFollowCoreConfig(mainApplicationContext);
             factory.setDataSource(followCoreConfig.getDataSource());
             Configuration configuration = followCoreConfig.getConfiguration(SpringBootMybatisExtension.Type.MYBATIS);
             factory.setConfiguration(configuration);
@@ -85,8 +67,7 @@ public class MybatisProcessor implements PluginPipeProcessorExtend {
                 }
             }
         }
-
-        PluginResourceFinder pluginResourceFinder = new PluginResourceFinder(pluginWrapper.getPluginClassLoader());
+        PluginResourceFinder pluginResourceFinder = new PluginResourceFinder(pluginRegistryInfo);
 
         Class>[] aliasesClasses = pluginResourceFinder.getAliasesClasses(config.entityPackage());
         if(aliasesClasses != null && aliasesClasses.length > 0){
@@ -100,12 +81,13 @@ public class MybatisProcessor implements PluginPipeProcessorExtend {
 
         ClassLoader defaultClassLoader = Resources.getDefaultClassLoader();
         try {
-            Resources.setDefaultClassLoader(pluginWrapper.getPluginClassLoader());
+            Resources.setDefaultClassLoader(pluginRegistryInfo.getDefaultPluginClassLoader());
             SqlSessionFactory sqlSessionFactory = factory.getObject();
             if(sqlSessionFactory == null){
                 throw new Exception("Get mybatis sqlSessionFactory is null");
             }
             SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
+            MapperHandler mapperHandler = new MapperHandler();
             mapperHandler.processMapper(pluginRegistryInfo, (holder, mapperClass) -> {
                 mapperHandler.commonProcessMapper(holder, mapperClass, sqlSessionFactory, sqlSessionTemplate);
             });
@@ -115,10 +97,5 @@ public class MybatisProcessor implements PluginPipeProcessorExtend {
 
     }
 
-    @Override
-    public void unRegistry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
-        mapperHandler.unRegistryMapper(pluginRegistryInfo);
-    }
-
 
 }
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginFollowCoreConfig.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginFollowCoreConfig.java
index 455257c1934424d6dd8bbb1eae8419be6b8e1a29..97cc0671ce734dd91f1aa4a85f2fda27c6c0c588 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginFollowCoreConfig.java
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginFollowCoreConfig.java
@@ -22,22 +22,22 @@ import java.util.*;
  */
 public class PluginFollowCoreConfig {
 
-    private final ApplicationContext applicationContext;
+    private final ApplicationContext mainApplicationContext;
 
-    public PluginFollowCoreConfig(ApplicationContext applicationContext) {
-        this.applicationContext = applicationContext;
+    public PluginFollowCoreConfig(ApplicationContext mainApplicationContext) {
+        this.mainApplicationContext = mainApplicationContext;
     }
 
 
     public DataSource getDataSource(){
-        return applicationContext.getBean(DataSource.class);
+        return mainApplicationContext.getBean(DataSource.class);
     }
 
     public Configuration getConfiguration(SpringBootMybatisExtension.Type type){
         Configuration configuration = new Configuration();
         if(type == SpringBootMybatisExtension.Type.MYBATIS){
             try {
-                Map customizerMap = applicationContext.getBeansOfType(ConfigurationCustomizer.class);
+                Map customizerMap = mainApplicationContext.getBeansOfType(ConfigurationCustomizer.class);
                 if(!customizerMap.isEmpty()){
                     for (ConfigurationCustomizer customizer : customizerMap.values()) {
                         customizer.customize(configuration);
@@ -54,7 +54,7 @@ public class PluginFollowCoreConfig {
         MybatisConfiguration configuration = new MybatisConfiguration();
         try {
             Map customizerMap =
-                    applicationContext.getBeansOfType(com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer.class);
+                    mainApplicationContext.getBeansOfType(com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer.class);
             if(!customizerMap.isEmpty()){
                 for (com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer customizer : customizerMap.values()) {
                     customizer.customize(configuration);
@@ -69,7 +69,7 @@ public class PluginFollowCoreConfig {
     public Interceptor[] getInterceptor(){
         Map, Interceptor> interceptorMap = new HashMap<>();
         try {
-            SqlSessionFactory sqlSessionFactory = applicationContext.getBean(SqlSessionFactory.class);
+            SqlSessionFactory sqlSessionFactory = mainApplicationContext.getBean(SqlSessionFactory.class);
             // 先从 SqlSessionFactory 工厂中获取拦截器
             List interceptors = sqlSessionFactory.getConfiguration().getInterceptors();
             if(interceptors != null){
@@ -84,7 +84,7 @@ public class PluginFollowCoreConfig {
             // ignore
         }
         // 再从定义Bean中获取拦截器
-        Map beanInterceptorMap = applicationContext.getBeansOfType(Interceptor.class);
+        Map beanInterceptorMap = mainApplicationContext.getBeansOfType(Interceptor.class);
         if(!beanInterceptorMap.isEmpty()){
             beanInterceptorMap.forEach((k, v)->{
                 // 如果Class一致, 则会覆盖
@@ -99,9 +99,9 @@ public class PluginFollowCoreConfig {
     }
 
     public DatabaseIdProvider getDatabaseIdProvider(){
-        String[] beanNamesForType = applicationContext.getBeanNamesForType(DatabaseIdProvider.class, false, false);
+        String[] beanNamesForType = mainApplicationContext.getBeanNamesForType(DatabaseIdProvider.class, false, false);
         if(beanNamesForType.length > 0){
-            return applicationContext.getBean(DatabaseIdProvider.class);
+            return mainApplicationContext.getBean(DatabaseIdProvider.class);
         }
         return null;
     }
@@ -110,7 +110,7 @@ public class PluginFollowCoreConfig {
     public LanguageDriver[] getLanguageDriver(){
         Map, LanguageDriver> languageDriverMap = new HashMap<>();
         try {
-            SqlSessionFactory sqlSessionFactory = applicationContext.getBean(SqlSessionFactory.class);
+            SqlSessionFactory sqlSessionFactory = mainApplicationContext.getBean(SqlSessionFactory.class);
             LanguageDriverRegistry languageRegistry = sqlSessionFactory.getConfiguration()
                     .getLanguageRegistry();
             // 先从 SqlSessionFactory 工厂中获取LanguageDriver
@@ -128,7 +128,7 @@ public class PluginFollowCoreConfig {
         } catch (Exception e){
             // ignore
         }
-        Map beansLanguageDriver = applicationContext.getBeansOfType(LanguageDriver.class);
+        Map beansLanguageDriver = mainApplicationContext.getBeansOfType(LanguageDriver.class);
         if(!beansLanguageDriver.isEmpty()){
             beansLanguageDriver.forEach((k, v)->{
                 // 如果Class一致, 则会覆盖
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginResourceFinder.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginResourceFinder.java
index cb74304c39dff9f58557c87eb47f2cb00f6b16b0..7dc23d21d22425ab1d0e93d679a21d380b407f24 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginResourceFinder.java
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginResourceFinder.java
@@ -1,6 +1,8 @@
 package com.gitee.starblues.extension.mybatis;
 
 
+import com.gitee.starblues.factory.PluginRegistryInfo;
+import org.pf4j.ClassLoadingStrategy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.core.io.Resource;
@@ -34,8 +36,8 @@ public class PluginResourceFinder {
     private final MetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory();
 
 
-    public PluginResourceFinder(ClassLoader classLoader) {
-        this.classLoader = classLoader;
+    public PluginResourceFinder(PluginRegistryInfo pluginRegistryInfo) {
+        this.classLoader = pluginRegistryInfo.getDefaultPluginClassLoader();
         this.resourcePatternResolver = new PathMatchingResourcePatternResolver(classLoader);;
     }
 
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisExtension.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisExtension.java
index 4e5689cdaa60dd33773731d6028e57f5f83ec285..acaba4b7b26a62e8aa60a01c9247a3f7ba50314c 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisExtension.java
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisExtension.java
@@ -7,6 +7,7 @@ import com.gitee.starblues.extension.mybatis.group.PluginMapperGroup;
 import com.gitee.starblues.extension.mybatis.mybatisplus.MybatisPlusProcessor;
 import com.gitee.starblues.extension.mybatis.tkmyabtis.TkMybatisProcessor;
 import com.gitee.starblues.factory.process.pipe.PluginPipeProcessorExtend;
+import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
 import com.gitee.starblues.factory.process.pipe.classs.PluginClassGroupExtend;
 import org.springframework.context.ApplicationContext;
 
@@ -42,11 +43,11 @@ public class SpringBootMybatisExtension extends AbstractExtension {
     }
 
     @Override
-    public void initialize(ApplicationContext applicationContext) throws Exception {
+    public void initialize(ApplicationContext mainApplicationContext) throws Exception {
     }
 
     @Override
-    public List getPluginClassGroup(ApplicationContext applicationContext) {
+    public List getPluginClassGroup(ApplicationContext mainApplicationContext) {
         final List pluginClassGroups = new ArrayList<>();
         pluginClassGroups.add(new MybatisConfigGroup());
         pluginClassGroups.add(new PluginEntityAliasesGroup());
@@ -55,16 +56,16 @@ public class SpringBootMybatisExtension extends AbstractExtension {
     }
 
     @Override
-    public List getPluginPipeProcessor(ApplicationContext applicationContext) {
-        final List pluginPipeProcessorExtends = new ArrayList<>();
+    public List getPluginBeanRegistrar(ApplicationContext mainApplicationContext) {
+        final List pluginBeanRegistrarExtends = new ArrayList<>(3);
         if(type == Type.MYBATIS_PLUS){
-            pluginPipeProcessorExtends.add(new MybatisPlusProcessor(applicationContext));
+            pluginBeanRegistrarExtends.add(new MybatisPlusProcessor());
         } else if(type == Type.TK_MYBATIS){
-            pluginPipeProcessorExtends.add(new TkMybatisProcessor(applicationContext));
+            pluginBeanRegistrarExtends.add(new TkMybatisProcessor());
         } else {
-            pluginPipeProcessorExtends.add(new MybatisProcessor(applicationContext));
+            pluginBeanRegistrarExtends.add(new MybatisProcessor());
         }
-        return pluginPipeProcessorExtends;
+        return pluginBeanRegistrarExtends;
     }
 
     public enum Type{
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/MybatisPlusProcessor.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/MybatisPlusProcessor.java
index 8b234c312784d8b002b93e71505d3953b1772b46..012f7c29c7aa8ddda8fcbd5c71a264bdee6fae37 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/MybatisPlusProcessor.java
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/MybatisPlusProcessor.java
@@ -6,23 +6,20 @@ import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
-import com.gitee.starblues.extension.ExtensionConfigUtils;
 import com.gitee.starblues.extension.mybatis.MapperHandler;
 import com.gitee.starblues.extension.mybatis.PluginFollowCoreConfig;
 import com.gitee.starblues.extension.mybatis.PluginResourceFinder;
 import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.factory.process.pipe.PluginPipeProcessorExtend;
-import com.gitee.starblues.utils.OrderPriority;
+import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
+import com.gitee.starblues.utils.PluginBeanUtils;
 import org.apache.ibatis.io.Resources;
 import org.apache.ibatis.mapping.DatabaseIdProvider;
 import org.apache.ibatis.plugin.Interceptor;
 import org.apache.ibatis.scripting.LanguageDriver;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionTemplate;
-import org.pf4j.PluginWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.io.Resource;
 
@@ -32,16 +29,12 @@ import org.springframework.core.io.Resource;
  * @author starBlues
  * @version 2.3
  */
-public class MybatisPlusProcessor implements PluginPipeProcessorExtend {
+public class MybatisPlusProcessor implements PluginBeanRegistrarExtend {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(MybatisPlusProcessor.class);
 
-    private final GenericApplicationContext applicationContext;
-    private final MapperHandler mapperHandler;
 
-    public MybatisPlusProcessor(ApplicationContext applicationContext) {
-        this.applicationContext = (GenericApplicationContext) applicationContext;
-        this.mapperHandler = new MapperHandler(this.applicationContext);
+    public MybatisPlusProcessor() {
     }
 
     @Override
@@ -49,33 +42,23 @@ public class MybatisPlusProcessor implements PluginPipeProcessorExtend {
         return "MybatisPlusProcessor";
     }
 
-    @Override
-    public OrderPriority order() {
-        return OrderPriority.getMiddlePriority();
-    }
-
-    @Override
-    public void initialize() throws Exception {
-
-    }
 
     @Override
     public void registry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
-        PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
-
-        SpringBootMybatisPlusConfig config = ExtensionConfigUtils.getConfig(applicationContext,
-                pluginWrapper.getPluginId(),
+        SpringBootMybatisPlusConfig config = PluginBeanUtils.getObjectByInterfaceClass(
+                pluginRegistryInfo.getConfigSingletons(),
                 SpringBootMybatisPlusConfig.class);
         if(config == null){
             return;
         }
-
         final MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean();
 
         if(config.enableOneselfConfig()){
             config.oneselfConfig(factory);
         } else {
-            PluginFollowCoreConfig followCoreConfig = new PluginFollowCoreConfig(applicationContext);
+            PluginFollowCoreConfig followCoreConfig = new PluginFollowCoreConfig(
+                    pluginRegistryInfo.getMainApplicationContext()
+            );
             factory.setDataSource(followCoreConfig.getDataSource());
             factory.setConfiguration(followCoreConfig.getMybatisPlusConfiguration());
             Interceptor[] interceptor = followCoreConfig.getInterceptor();
@@ -91,10 +74,10 @@ public class MybatisPlusProcessor implements PluginPipeProcessorExtend {
                 factory.setScriptingLanguageDrivers(languageDriver);
             }
             // 配置mybatis私有的配置
-            mybatisPlusFollowCoreConfig(factory);
+            mybatisPlusFollowCoreConfig(factory, pluginRegistryInfo.getMainApplicationContext());
         }
 
-        PluginResourceFinder pluginResourceFinder = new PluginResourceFinder(pluginWrapper.getPluginClassLoader());
+        PluginResourceFinder pluginResourceFinder = new PluginResourceFinder(pluginRegistryInfo);
 
         Class>[] aliasesClasses = pluginResourceFinder.getAliasesClasses(config.entityPackage());
         if(aliasesClasses != null && aliasesClasses.length > 0){
@@ -105,15 +88,15 @@ public class MybatisPlusProcessor implements PluginPipeProcessorExtend {
         if(xmlResource != null && xmlResource.length > 0){
             factory.setMapperLocations(xmlResource);
         }
-
         ClassLoader defaultClassLoader = Resources.getDefaultClassLoader();
         try {
-            Resources.setDefaultClassLoader(pluginWrapper.getPluginClassLoader());
+            Resources.setDefaultClassLoader(pluginRegistryInfo.getDefaultPluginClassLoader());
             SqlSessionFactory sqlSessionFactory = factory.getObject();
             if(sqlSessionFactory == null){
                 throw new Exception("Get mybatis-plus sqlSessionFactory is null");
             }
             SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
+            MapperHandler mapperHandler = new MapperHandler();
             mapperHandler.processMapper(pluginRegistryInfo, (holder, mapperClass) -> {
                 mapperHandler.commonProcessMapper(holder, mapperClass, sqlSessionFactory, sqlSessionTemplate);
             });
@@ -124,40 +107,36 @@ public class MybatisPlusProcessor implements PluginPipeProcessorExtend {
     }
 
 
-    @Override
-    public void unRegistry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
-        mapperHandler.unRegistryMapper(pluginRegistryInfo);
-    }
 
-    private void mybatisPlusFollowCoreConfig(MybatisSqlSessionFactoryBean factory){
-        MybatisPlusProperties plusProperties = applicationContext.getBean(MybatisPlusProperties.class);
+    private void mybatisPlusFollowCoreConfig(MybatisSqlSessionFactoryBean factory,
+                                             GenericApplicationContext parentApplicationContext){
+        MybatisPlusProperties plusProperties = parentApplicationContext.getBean(MybatisPlusProperties.class);
 
         GlobalConfig globalConfig = plusProperties.getGlobalConfig();
 
-        if (this.applicationContext.getBeanNamesForType(IKeyGenerator.class, false,
+        if (parentApplicationContext.getBeanNamesForType(IKeyGenerator.class, false,
                 false).length > 0) {
-            IKeyGenerator keyGenerator = this.applicationContext.getBean(IKeyGenerator.class);
+            IKeyGenerator keyGenerator = parentApplicationContext.getBean(IKeyGenerator.class);
             globalConfig.getDbConfig().setKeyGenerator(keyGenerator);
         }
 
-        if (this.applicationContext.getBeanNamesForType(MetaObjectHandler.class,
+        if (parentApplicationContext.getBeanNamesForType(MetaObjectHandler.class,
                 false, false).length > 0) {
-            MetaObjectHandler metaObjectHandler = this.applicationContext.getBean(MetaObjectHandler.class);
+            MetaObjectHandler metaObjectHandler = parentApplicationContext.getBean(MetaObjectHandler.class);
             globalConfig.setMetaObjectHandler(metaObjectHandler);
         }
-        if (this.applicationContext.getBeanNamesForType(IKeyGenerator.class, false,
+        if (parentApplicationContext.getBeanNamesForType(IKeyGenerator.class, false,
                 false).length > 0) {
-            IKeyGenerator keyGenerator = this.applicationContext.getBean(IKeyGenerator.class);
+            IKeyGenerator keyGenerator = parentApplicationContext.getBean(IKeyGenerator.class);
             globalConfig.getDbConfig().setKeyGenerator(keyGenerator);
         }
 
-        if (this.applicationContext.getBeanNamesForType(ISqlInjector.class, false,
+        if (parentApplicationContext.getBeanNamesForType(ISqlInjector.class, false,
                 false).length > 0) {
-            ISqlInjector iSqlInjector = this.applicationContext.getBean(ISqlInjector.class);
+            ISqlInjector iSqlInjector = parentApplicationContext.getBean(ISqlInjector.class);
             globalConfig.setSqlInjector(iSqlInjector);
         }
         factory.setGlobalConfig(globalConfig);
     }
 
-
 }
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/tkmyabtis/TkMybatisProcessor.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/tkmyabtis/TkMybatisProcessor.java
index 0ac602d4733edadfe605d8648ac3146260a9c640..debfb080a0697492422da32f41fb65eb24e81b7b 100644
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/tkmyabtis/TkMybatisProcessor.java
+++ b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/tkmyabtis/TkMybatisProcessor.java
@@ -1,26 +1,23 @@
 package com.gitee.starblues.extension.mybatis.tkmyabtis;
 
-import com.gitee.starblues.extension.ExtensionConfigUtils;
 import com.gitee.starblues.extension.mybatis.MapperHandler;
 import com.gitee.starblues.extension.mybatis.PluginFollowCoreConfig;
 import com.gitee.starblues.extension.mybatis.PluginResourceFinder;
 import com.gitee.starblues.extension.mybatis.SpringBootMybatisExtension;
 import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.factory.process.pipe.PluginPipeProcessorExtend;
-import com.gitee.starblues.utils.OrderPriority;
+import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
+import com.gitee.starblues.utils.PluginBeanUtils;
 import org.apache.ibatis.io.Resources;
 import org.apache.ibatis.mapping.DatabaseIdProvider;
 import org.apache.ibatis.plugin.Interceptor;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionFactoryBean;
 import org.mybatis.spring.SqlSessionTemplate;
-import org.pf4j.PluginWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.config.BeanDefinitionHolder;
 import org.springframework.beans.factory.support.AbstractBeanDefinition;
 import org.springframework.beans.factory.support.GenericBeanDefinition;
-import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.io.Resource;
 import tk.mybatis.mapper.entity.Config;
@@ -32,17 +29,13 @@ import tk.mybatis.spring.mapper.MapperFactoryBean;
  * @author starBlues
  * @version 2.3
  */
-public class TkMybatisProcessor implements PluginPipeProcessorExtend {
+public class TkMybatisProcessor implements PluginBeanRegistrarExtend {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(TkMybatisProcessor.class);
 
-    private final GenericApplicationContext applicationContext;
-    private final MapperHandler mapperHandler;
     private final MapperFactoryBean> mapperFactoryBean = new MapperFactoryBean