소스 검색

适配优化

miemie 5 년 전
부모
커밋
6ffe0742ab

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

@@ -65,10 +65,8 @@ 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.Set;
-import java.util.stream.Collectors;
+import java.util.Optional;
 import java.util.stream.Stream;
 
 /**
@@ -187,21 +185,13 @@ public class MybatisPlusAutoConfiguration implements InitializingBean {
         if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
             factory.setMapperLocations(this.properties.resolveMapperLocations());
         }
-        Set<String> factoryPropertyNames = Stream
-            .of(new BeanWrapperImpl(MybatisSqlSessionFactoryBean.class).getPropertyDescriptors()).map(PropertyDescriptor::getName)
-            .collect(Collectors.toSet());
+
+        // TODO 对源码做了一定的修改(因为源码适配了老旧的mybatis版本,但我们不需要适配)
         Class<? extends LanguageDriver> defaultLanguageDriver = this.properties.getDefaultScriptingLanguageDriver();
-        if (factoryPropertyNames.contains("scriptingLanguageDrivers") && !ObjectUtils.isEmpty(this.languageDrivers)) {
-            // Need to mybatis-spring 2.0.2+
+        if (!ObjectUtils.isEmpty(this.languageDrivers)) {
             factory.setScriptingLanguageDrivers(this.languageDrivers);
-            if (defaultLanguageDriver == null && this.languageDrivers.length == 1) {
-                defaultLanguageDriver = this.languageDrivers[0].getClass();
-            }
-        }
-        if (factoryPropertyNames.contains("defaultScriptingLanguageDriver")) {
-            // Need to mybatis-spring 2.0.2+
-            factory.setDefaultScriptingLanguageDriver(defaultLanguageDriver);
         }
+        Optional.ofNullable(defaultLanguageDriver).ifPresent(factory::setDefaultScriptingLanguageDriver);
 
         // TODO 自定义枚举包
         if (StringUtils.hasLength(this.properties.getTypeEnumsPackage())) {

+ 2 - 0
mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/autoconfigure/MybatisPlusProperties.java

@@ -87,6 +87,8 @@ public class MybatisPlusProperties {
 
     /**
      * The default scripting language driver class. (Available when use together with mybatis-spring 2.0.2+)
+     * <p>
+     * 如果设置了这个,你会至少失去 mp 提供的有关填充到 entity 的 property 相关的功能
      */
     private Class<? extends LanguageDriver> defaultScriptingLanguageDriver;
 

+ 0 - 3
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java

@@ -127,9 +127,6 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
 
     private LanguageDriver[] scriptingLanguageDrivers;
 
-    /**
-     * 如果设置了这个,你会失去 mp 提供的有关填充到 entity 的 property 相关的功能
-     */
     private Class<? extends LanguageDriver> defaultScriptingLanguageDriver;
 
     // issue #19. No default provider.