Browse Source

优化注入方法

nieqiuqiu 6 years ago
parent
commit
a23e88e593

+ 19 - 19
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractSqlInjector.java

@@ -15,18 +15,6 @@
  */
  */
 package com.baomidou.mybatisplus.core.injector;
 package com.baomidou.mybatisplus.core.injector;
 
 
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.lang.reflect.WildcardType;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.ibatis.builder.MapperBuilderAssistant;
-import org.apache.ibatis.logging.Log;
-import org.apache.ibatis.logging.LogFactory;
-import org.apache.ibatis.session.Configuration;
-
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.parser.SqlParserHelper;
 import com.baomidou.mybatisplus.core.parser.SqlParserHelper;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
@@ -34,6 +22,18 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 
 
+import org.apache.ibatis.builder.MapperBuilderAssistant;
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
+import org.apache.ibatis.session.Configuration;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.lang.reflect.WildcardType;
+import java.util.List;
+import java.util.Set;
+
 
 
 /**
 /**
  * SQL 自动注入器
  * SQL 自动注入器
@@ -47,16 +47,18 @@ public abstract class AbstractSqlInjector implements ISqlInjector {
 
 
     @Override
     @Override
     public void inspectInject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass) {
     public void inspectInject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass) {
-        List<AbstractMethod> methodList = this.getMethodList(builderAssistant, mapperClass);
-        if (CollectionUtils.isNotEmpty(methodList)) {
+        Class<?> modelClass = extractModelClass(mapperClass);
+        if (modelClass != null) {
             String className = mapperClass.toString();
             String className = mapperClass.toString();
             Set<String> mapperRegistryCache = GlobalConfigUtils.getMapperRegistryCache(builderAssistant.getConfiguration());
             Set<String> mapperRegistryCache = GlobalConfigUtils.getMapperRegistryCache(builderAssistant.getConfiguration());
             if (!mapperRegistryCache.contains(className)) {
             if (!mapperRegistryCache.contains(className)) {
-                // 循环注入自定义方法
-                Class<?> modelClass = extractModelClass(mapperClass);
-                if (modelClass != null) {
+                List<AbstractMethod> methodList = this.getMethodList(builderAssistant, mapperClass);
+                if (CollectionUtils.isNotEmpty(methodList)) {
                     TableInfo tableInfo = TableInfoHelper.initTableInfo(builderAssistant, modelClass);
                     TableInfo tableInfo = TableInfoHelper.initTableInfo(builderAssistant, modelClass);
+                    // 循环注入自定义方法
                     methodList.forEach(m -> m.inject(builderAssistant, mapperClass, modelClass, tableInfo));
                     methodList.forEach(m -> m.inject(builderAssistant, mapperClass, modelClass, tableInfo));
+                } else {
+                    logger.debug(mapperClass.toString() + ", No effective injection method was found.");
                 }
                 }
                 mapperRegistryCache.add(className);
                 mapperRegistryCache.add(className);
                 /*
                 /*
@@ -66,8 +68,6 @@ public abstract class AbstractSqlInjector implements ISqlInjector {
                     SqlParserHelper.initSqlParserInfoCache(mapperClass);
                     SqlParserHelper.initSqlParserInfoCache(mapperClass);
                 }
                 }
             }
             }
-        } else {
-            logger.debug(mapperClass.toString() + ", No effective injection method was found.");
         }
         }
     }
     }