miemie 7 年 前
コミット
fc2caa8a26

+ 8 - 9
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisMapperRegistry.java

@@ -15,18 +15,17 @@
  */
 package com.baomidou.mybatisplus.core;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
+import com.baomidou.mybatisplus.core.override.PageMapperProxyFactory;
+import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import org.apache.ibatis.binding.BindingException;
 import org.apache.ibatis.binding.MapperRegistry;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.SqlSession;
 
-import com.baomidou.mybatisplus.core.override.PageMapperProxyFactory;
-import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * <p>
@@ -44,10 +43,11 @@ public class MybatisMapperRegistry extends MapperRegistry {
     public MybatisMapperRegistry(Configuration config) {
         super(config);
         this.config = config;
-        //TODO: 注入SqlRunner
+        // 注入SqlRunner
         GlobalConfigUtils.getSqlInjector(config).injectSqlRunner(config);
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public <T> T getMapper(Class<T> type, SqlSession sqlSession) {
         final PageMapperProxyFactory<T> mapperProxyFactory = (PageMapperProxyFactory<T>) knownMappers.get(type);
@@ -100,5 +100,4 @@ public class MybatisMapperRegistry extends MapperRegistry {
     public Collection<Class<?>> getMappers() {
         return Collections.unmodifiableCollection(knownMappers.keySet());
     }
-
 }

+ 2 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java

@@ -58,9 +58,9 @@ public abstract class AbstractMethod {
      * 注入自定义方法
      */
     public void inject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass) {
-        configuration = builderAssistant.getConfiguration();
+        this.configuration = builderAssistant.getConfiguration();
         this.builderAssistant = builderAssistant;
-        languageDriver = configuration.getDefaultScriptingLanguageInstance();
+        this.languageDriver = configuration.getDefaultScriptingLanguageInstance();
         Class<?> modelClass = extractModelClass(mapperClass);
         if (null != modelClass) {
             /**

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

@@ -15,8 +15,7 @@
  */
 package com.baomidou.mybatisplus.core.injector;
 
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import org.apache.ibatis.builder.MapperBuilderAssistant;
 import org.apache.ibatis.session.Configuration;
@@ -35,23 +34,13 @@ import java.util.Set;
  */
 public abstract class AbstractSqlInjector implements ISqlInjector {
 
-    /**
-     * <p>
-     * CRUD 注入后给予标识 注入过后不再注入
-     * </p>
-     *
-     * @param builderAssistant
-     * @param mapperClass
-     */
     @Override
     public void inspectInject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass) {
         String className = mapperClass.toString();
         Set<String> mapperRegistryCache = GlobalConfigUtils.getMapperRegistryCache(builderAssistant.getConfiguration());
         if (!mapperRegistryCache.contains(className)) {
             List<AbstractMethod> methodList = this.getMethodList();
-            if (CollectionUtils.isEmpty(methodList)) {
-                throw new MybatisPlusException("No effective injection method was found.");
-            }
+            Assert.notEmpty(methodList, "No effective injection method was found.");
             // 循环注入自定义方法
             methodList.forEach(m -> m.inject(builderAssistant, mapperClass));
             mapperRegistryCache.add(className);
@@ -63,5 +52,12 @@ public abstract class AbstractSqlInjector implements ISqlInjector {
         // to do nothing
     }
 
+    /**
+     * <p>
+     * 获取 注入的方法
+     * </p>
+     *
+     * @return 注入的方法集合
+     */
     public abstract List<AbstractMethod> getMethodList();
 }

+ 4 - 6
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/ISqlInjector.java

@@ -15,11 +15,10 @@
  */
 package com.baomidou.mybatisplus.core.injector;
 
+import com.baomidou.mybatisplus.core.assist.ISqlRunner;
 import org.apache.ibatis.builder.MapperBuilderAssistant;
 import org.apache.ibatis.session.Configuration;
 
-import com.baomidou.mybatisplus.core.assist.ISqlRunner;
-
 /**
  * <p>
  * SQL 自动注入器接口
@@ -35,8 +34,8 @@ public interface ISqlInjector {
      * 检查SQL是否注入(已经注入过不再注入)
      * </p>
      *
-     * @param builderAssistant
-     * @param mapperClass
+     * @param builderAssistant mapper 信息
+     * @param mapperClass      mapper 接口的 class 对象
      */
     void inspectInject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass);
 
@@ -45,9 +44,8 @@ public interface ISqlInjector {
      * 注入 SqlRunner 相关
      * </p>
      *
-     * @param configuration
+     * @param configuration 全局配置
      * @see ISqlRunner
      */
     void injectSqlRunner(Configuration configuration);
-
 }

+ 7 - 11
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/parser/SqlParserHelper.java

@@ -15,15 +15,14 @@
  */
 package com.baomidou.mybatisplus.core.parser;
 
-import java.lang.reflect.Method;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import org.apache.ibatis.mapping.MappedStatement;
 import org.apache.ibatis.reflection.MetaObject;
 
-import com.baomidou.mybatisplus.annotation.SqlParser;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import java.lang.reflect.Method;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * <p>
@@ -54,9 +53,8 @@ public class SqlParserHelper {
         for (Method method : methods) {
             SqlParser sqlParser = method.getAnnotation(SqlParser.class);
             if (null != sqlParser) {
-                StringBuilder sid = new StringBuilder();
-                sid.append(mapperClass.getName()).append(StringPool.DOT).append(method.getName());
-                SQL_PARSER_INFO_CACHE.put(sid.toString(), new SqlParserInfo(sqlParser));
+                String sid = mapperClass.getName() + StringPool.DOT + method.getName();
+                SQL_PARSER_INFO_CACHE.put(sid, new SqlParserInfo(sqlParser));
             }
         }
     }
@@ -68,7 +66,6 @@ public class SqlParserHelper {
      * </p>
      *
      * @param metaObject 元数据对象
-     * @return
      */
     public static SqlParserInfo getSqlParserInfo(MetaObject metaObject) {
         return SQL_PARSER_INFO_CACHE.get(getMappedStatement(metaObject).getId());
@@ -81,7 +78,6 @@ public class SqlParserHelper {
      * </p>
      *
      * @param metaObject 元对象
-     * @return
      */
     public static MappedStatement getMappedStatement(MetaObject metaObject) {
         return (MappedStatement) metaObject.getValue(DELEGATE_MAPPED_STATEMENT);

+ 6 - 12
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/parser/SqlParserInfo.java

@@ -17,6 +17,9 @@ package com.baomidou.mybatisplus.core.parser;
 
 
 import com.baomidou.mybatisplus.annotation.SqlParser;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
 
 /**
  * <p>
@@ -26,6 +29,9 @@ import com.baomidou.mybatisplus.annotation.SqlParser;
  * @author hubin
  * @since 2018-01-13
  */
+@Data
+@Accessors(chain = true)
+@NoArgsConstructor
 public class SqlParserInfo {
 
     /**
@@ -33,19 +39,7 @@ public class SqlParserInfo {
      */
     private boolean filter;
 
-    public SqlParserInfo() {
-
-    }
-
     public SqlParserInfo(SqlParser sqlParser) {
         this.filter = sqlParser.filter();
     }
-
-    public boolean getFilter() {
-        return filter;
-    }
-
-    public void setFilter(boolean filter) {
-        this.filter = filter;
-    }
 }