瀏覽代碼

修复自动配置lazy-initialization无属性提示,mapper-default-scope配置缺失.

nieqiurong 4 年之前
父節點
當前提交
75caa78bfc

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

@@ -67,9 +67,12 @@ import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
 import javax.sql.DataSource;
+import java.beans.PropertyDescriptor;
 import java.util.List;
 import java.util.Optional;
+import java.util.Set;
 import java.util.function.Consumer;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 /**
@@ -287,10 +290,17 @@ public class MybatisPlusAutoConfiguration implements InitializingBean {
             builder.addPropertyValue("annotationClass", Mapper.class);
             builder.addPropertyValue("basePackage", StringUtils.collectionToCommaDelimitedString(packages));
             BeanWrapper beanWrapper = new BeanWrapperImpl(MapperScannerConfigurer.class);
-            Stream.of(beanWrapper.getPropertyDescriptors())
+            Set<String> propertyNames = Stream.of(beanWrapper.getPropertyDescriptors()).map(PropertyDescriptor::getName)
+                .collect(Collectors.toSet());
+            if (propertyNames.contains("lazyInitialization")) {
                 // Need to mybatis-spring 2.0.2+
-                .filter(x -> x.getName().equals("lazyInitialization")).findAny()
-                .ifPresent(x -> builder.addPropertyValue("lazyInitialization", "${mybatis.lazy-initialization:false}"));
+                // TODO 兼容了mybatis.lazy-initialization配置
+                builder.addPropertyValue("lazyInitialization", "${mybatis-plus.lazy-initialization:${mybatis.lazy-initialization:false}}");
+            }
+            if (propertyNames.contains("defaultScope")) {
+                // Need to mybatis-spring 2.0.6+
+                builder.addPropertyValue("defaultScope", "${mybatis-plus.mapper-default-scope:}");
+            }
             registry.registerBeanDefinition(MapperScannerConfigurer.class.getName(), builder.getBeanDefinition());
         }
 

+ 12 - 0
mybatis-plus-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json

@@ -25,6 +25,18 @@
         }
     ],
     "properties": [
+        {
+            "defaultValue": false,
+            "name": "mybatis-plus.lazy-initialization",
+            "description": "Set whether enable lazy initialization for mapper bean.",
+            "type": "java.lang.Boolean"
+        },
+        {
+            "defaultValue": "",
+            "name": "mybatis-plus.mapper-default-scope",
+            "description": "A default scope for mapper bean that scanned by auto-configure.",
+            "type": "java.lang.String"
+        },
         {
             "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig",
             "name": "mybatis-plus.global-config.identifier-generator",