瀏覽代碼

支持sql注入器,主键生成器.

nieqiurong 7 年之前
父節點
當前提交
e4f2f717b6

+ 16 - 0
mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/spring/boot/starter/GlobalConfig.java

@@ -42,6 +42,7 @@ public class GlobalConfig {
     /**
      * SQL注入器
      */
+    @Deprecated
     private String sqlInjector;
     /**
      * 元对象字段填充控制器
@@ -75,6 +76,7 @@ public class GlobalConfig {
     /**
      * 表关键词 key 生成器
      */
+    @Deprecated
     private String keyGenerator;
     /**
      * 缓存 Sql 解析初始化
@@ -97,10 +99,17 @@ public class GlobalConfig {
         this.dbColumnUnderline = dbColumnUnderline;
     }
 
+    @Deprecated
     public String getSqlInjector() {
         return sqlInjector;
     }
 
+    /**
+     * 不在推荐使用,请自定义bean注入spring容器
+     * @deprecated 2.1.9
+     * @param sqlInjector
+     */
+    @Deprecated
     public void setSqlInjector(String sqlInjector) {
         this.sqlInjector = sqlInjector;
     }
@@ -168,10 +177,17 @@ public class GlobalConfig {
         this.logicNotDeleteValue = logicNotDeleteValue;
     }
 
+    @Deprecated
     public String getKeyGenerator() {
         return keyGenerator;
     }
 
+    /**
+     * 不在推荐使用,请自定义bean注入spring容器
+     * @deprecated 2.1.9
+     * @param keyGenerator
+     */
+    @Deprecated
     public void setKeyGenerator(String keyGenerator) {
         this.keyGenerator = keyGenerator;
     }

+ 17 - 3
mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/spring/boot/starter/MybatisPlusAutoConfiguration.java

@@ -6,6 +6,8 @@ import javax.annotation.PostConstruct;
 import javax.sql.DataSource;
 
 import com.baomidou.mybatisplus.entity.GlobalConfiguration;
+import com.baomidou.mybatisplus.incrementer.IKeyGenerator;
+import com.baomidou.mybatisplus.mapper.ISqlInjector;
 import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.logging.Log;
@@ -80,9 +82,9 @@ public class MybatisPlusAutoConfiguration {
     private final DatabaseIdProvider databaseIdProvider;
 
     private final List<ConfigurationCustomizer> configurationCustomizers;
-    
+
     private final ApplicationContext applicationContext;
-    
+
     public MybatisPlusAutoConfiguration(MybatisPlusProperties properties,
                                         ObjectProvider<Interceptor[]> interceptorsProvider,
                                         ResourceLoader resourceLoader,
@@ -153,12 +155,24 @@ public class MybatisPlusAutoConfiguration {
         }else {
             globalConfig = new GlobalConfiguration();
         }
-        //注入定义填充
+        //注入填充
         if (this.applicationContext.getBeanNamesForType(MetaObjectHandler.class, false,
             false).length > 0) {
             MetaObjectHandler metaObjectHandler = this.applicationContext.getBean(MetaObjectHandler.class);
             globalConfig.setMetaObjectHandler(metaObjectHandler);
         }
+        //注入主键生成器
+        if(this.applicationContext.getBeanNamesForType(IKeyGenerator.class,false,
+            false).length >0){
+            IKeyGenerator keyGenerator = this.applicationContext.getBean(IKeyGenerator.class);
+            globalConfig.setKeyGenerator(keyGenerator);
+        }
+        //注入sql注入器
+        if(this.applicationContext.getBeanNamesForType(ISqlInjector.class,false,
+            false).length >0){
+            ISqlInjector iSqlInjector = this.applicationContext.getBean(ISqlInjector.class);
+            globalConfig.setSqlInjector(iSqlInjector);
+        }
         factory.setGlobalConfig(globalConfig);
         return factory.getObject();
     }