8 Commits a757e5f966 ... 9ae6730d0e

Autore SHA1 Messaggio Data
  hubin 9ae6730d0e 解耦部分包重名为 spi 10 mesi fa
  hubin 63224f3224 测试用例检查Bug修改 10 mesi fa
  hubin 3b75211528 解耦kt部分测试移动至spring模块 10 mesi fa
  hubin b2b10eb77a 解耦spring兼容修改为spi方式加载 10 mesi fa
  hubin 8376d1b19a Merge branch '3.0' of https://github.com/baomidou/mybatis-plus into github3.0 10 mesi fa
  hubin f6b5a9b054 依赖关系检查调整 10 mesi fa
  nieqiurong 1673c0a8af 编译失败. 10 mesi fa
  hubin 659bfdda70 测试用例bug修复 10 mesi fa
20 ha cambiato i file con 17 aggiunte e 37 eliminazioni
  1. 1 0
      mybatis-plus-extension/build.gradle
  2. 1 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/activerecord/AbstractModel.java
  3. 1 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/ddl/DdlHelper.java
  4. 6 6
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spi/CompatibleHelper.java
  5. 1 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spi/CompatibleSet.java
  6. 1 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlHelper.java
  7. 0 9
      mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/test/pom/GeneratePomTest.java
  8. 1 1
      mybatis-plus-generator/build.gradle
  9. 1 1
      mybatis-plus-spring/src/main/java/com/baomidou/mybatisplus/extension/spi/SpringCompatibleSet.java
  10. 1 0
      mybatis-plus-spring/src/main/resources/META-INF/services/com.baomidou.mybatisplus.extension.spi.CompatibleSet
  11. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/instance.kt
  12. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/BaseDbTest.kt
  13. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/ChainWrappersTest.kt
  14. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/DbTest.kt
  15. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/FixIssue1986.kt
  16. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/User.kt
  17. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/UserMapper.kt
  18. 0 0
      mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/WrapperTest.kt
  19. 1 1
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/pom/GeneratePomTest.java
  20. 2 15
      spring-boot-starter/mybatis-plus-spring-boot-autoconfigure/src/main/java/com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.java

+ 1 - 0
mybatis-plus-extension/build.gradle

@@ -20,6 +20,7 @@ dependencies {
     implementation "de.ruedigermoeller:fst:3.0.4-jdk17"
     implementation "de.ruedigermoeller:fst:3.0.4-jdk17"
     implementation "com.github.ben-manes.caffeine:caffeine:2.9.3"
     implementation "com.github.ben-manes.caffeine:caffeine:2.9.3"
     testImplementation "io.github.classgraph:classgraph:4.8.176"
     testImplementation "io.github.classgraph:classgraph:4.8.176"
+    testImplementation "${lib."spring-context-support"}"
     testImplementation "${lib.h2}"
     testImplementation "${lib.h2}"
     testImplementation "${lib.mysql}"
     testImplementation "${lib.mysql}"
     testImplementation "${lib.'logback-classic'}"
     testImplementation "${lib.'logback-classic'}"

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/activerecord/AbstractModel.java

@@ -21,7 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.*;
 import com.baomidou.mybatisplus.core.toolkit.*;
-import com.baomidou.mybatisplus.extension.compatible.CompatibleHelper;
+import com.baomidou.mybatisplus.extension.spi.CompatibleHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSession;

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/ddl/DdlHelper.java

@@ -17,7 +17,7 @@ package com.baomidou.mybatisplus.extension.ddl;
 
 
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.baomidou.mybatisplus.extension.compatible.CompatibleHelper;
+import com.baomidou.mybatisplus.extension.spi.CompatibleHelper;
 import com.baomidou.mybatisplus.extension.ddl.history.*;
 import com.baomidou.mybatisplus.extension.ddl.history.*;
 import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
 import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 6 - 6
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/compatible/CompatibleHelper.java → mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spi/CompatibleHelper.java

@@ -13,7 +13,9 @@
  * See the License for the specific language governing permissions and
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * limitations under the License.
  */
  */
-package com.baomidou.mybatisplus.extension.compatible;
+package com.baomidou.mybatisplus.extension.spi;
+
+import java.util.ServiceLoader;
 
 
 /**
 /**
  * 兼容处理辅助类
  * 兼容处理辅助类
@@ -23,12 +25,10 @@ public class CompatibleHelper {
     private static CompatibleSet COMPATIBLE_SET;
     private static CompatibleSet COMPATIBLE_SET;
 
 
     public static CompatibleSet getCompatibleSet() {
     public static CompatibleSet getCompatibleSet() {
-        return COMPATIBLE_SET;
-    }
-
-    public static void setCompatibleSet(CompatibleSet compatibleSet) {
         if (null == COMPATIBLE_SET) {
         if (null == COMPATIBLE_SET) {
-            COMPATIBLE_SET = compatibleSet;
+            ServiceLoader<CompatibleSet> loader = ServiceLoader.load(CompatibleSet.class);
+            COMPATIBLE_SET = loader.iterator().next();
         }
         }
+        return COMPATIBLE_SET;
     }
     }
 }
 }

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/compatible/CompatibleSet.java → mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spi/CompatibleSet.java

@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * limitations under the License.
  */
  */
-package com.baomidou.mybatisplus.extension.compatible;
+package com.baomidou.mybatisplus.extension.spi;
 
 
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSession;

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlHelper.java

@@ -21,7 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.*;
 import com.baomidou.mybatisplus.core.toolkit.*;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
-import com.baomidou.mybatisplus.extension.compatible.CompatibleHelper;
+import com.baomidou.mybatisplus.extension.spi.CompatibleHelper;
 import org.apache.ibatis.executor.BatchResult;
 import org.apache.ibatis.executor.BatchResult;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.ExecutorType;

+ 0 - 9
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/test/pom/GeneratePomTest.java

@@ -44,21 +44,12 @@ class GeneratePomTest {
             Dependency core = dependenciesMap.get("mybatis-plus-core");
             Dependency core = dependenciesMap.get("mybatis-plus-core");
             Assertions.assertEquals("compile", core.getScope());
             Assertions.assertEquals("compile", core.getScope());
             Assertions.assertFalse(core.isOptional());
             Assertions.assertFalse(core.isOptional());
-            Dependency mybatisSpring = dependenciesMap.get("mybatis-spring");
-            Assertions.assertEquals("compile", mybatisSpring.getScope());
-            Assertions.assertTrue(mybatisSpring.isOptional());
             Dependency kotlinStdlib = dependenciesMap.get("kotlin-stdlib-jdk8");
             Dependency kotlinStdlib = dependenciesMap.get("kotlin-stdlib-jdk8");
             Assertions.assertEquals("compile", kotlinStdlib.getScope());
             Assertions.assertEquals("compile", kotlinStdlib.getScope());
             Assertions.assertTrue(kotlinStdlib.isOptional());
             Assertions.assertTrue(kotlinStdlib.isOptional());
             Dependency kotlinReflect = dependenciesMap.get("kotlin-reflect");
             Dependency kotlinReflect = dependenciesMap.get("kotlin-reflect");
             Assertions.assertEquals("compile", kotlinReflect.getScope());
             Assertions.assertEquals("compile", kotlinReflect.getScope());
             Assertions.assertTrue(kotlinReflect.isOptional());
             Assertions.assertTrue(kotlinReflect.isOptional());
-            Dependency support = dependenciesMap.get("spring-context-support");
-            Assertions.assertEquals("compile", support.getScope());
-            Assertions.assertTrue(support.isOptional());
-            Dependency jdbc = dependenciesMap.get("spring-jdbc");
-            Assertions.assertEquals("compile", jdbc.getScope());
-            Assertions.assertTrue(jdbc.isOptional());
             Dependency slf4jApi = dependenciesMap.get("slf4j-api");
             Dependency slf4jApi = dependenciesMap.get("slf4j-api");
             Assertions.assertEquals("compile", slf4jApi.getScope());
             Assertions.assertEquals("compile", slf4jApi.getScope());
             Assertions.assertTrue(slf4jApi.isOptional());
             Assertions.assertTrue(slf4jApi.isOptional());

+ 1 - 1
mybatis-plus-generator/build.gradle

@@ -1,5 +1,5 @@
 dependencies {
 dependencies {
-    implementation project(":mybatis-plus-extension")
+    implementation project(":mybatis-plus-spring")
     implementation "${lib.velocity}"
     implementation "${lib.velocity}"
     implementation "${lib.freemarker}"
     implementation "${lib.freemarker}"
     implementation "${lib.beetl}"
     implementation "${lib.beetl}"

+ 1 - 1
mybatis-plus-spring/src/main/java/com/baomidou/mybatisplus/extension/compatible/SpringCompatibleSet.java → mybatis-plus-spring/src/main/java/com/baomidou/mybatisplus/extension/spi/SpringCompatibleSet.java

@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * limitations under the License.
  */
  */
-package com.baomidou.mybatisplus.extension.compatible;
+package com.baomidou.mybatisplus.extension.spi;
 
 
 import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;

+ 1 - 0
mybatis-plus-spring/src/main/resources/META-INF/services/com.baomidou.mybatisplus.extension.spi.CompatibleSet

@@ -0,0 +1 @@
+com.baomidou.mybatisplus.extension.spi.SpringCompatibleSet

+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/instance.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/instance.kt


+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/BaseDbTest.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/BaseDbTest.kt


+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/ChainWrappersTest.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/ChainWrappersTest.kt


+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/DbTest.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/DbTest.kt


+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/FixIssue1986.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/FixIssue1986.kt


+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/User.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/User.kt


+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/UserMapper.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/UserMapper.kt


+ 0 - 0
mybatis-plus-extension/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/WrapperTest.kt → mybatis-plus-spring/src/test/kotlin/com/baomidou/mybatisplus/test/kotlin/WrapperTest.kt


+ 1 - 1
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/pom/GeneratePomTest.java

@@ -41,7 +41,7 @@ class GeneratePomTest {
                 String artifactId = $this.s("artifactId").text();
                 String artifactId = $this.s("artifactId").text();
                 dependenciesMap.put(artifactId, new Dependency(artifactId, $this.s("scope").text(), Boolean.parseBoolean($this.s("optional").text())));
                 dependenciesMap.put(artifactId, new Dependency(artifactId, $this.s("scope").text(), Boolean.parseBoolean($this.s("optional").text())));
             });
             });
-            Dependency extension = dependenciesMap.get("mybatis-plus-extension");
+            Dependency extension = dependenciesMap.get("mybatis-plus-spring");
             Assertions.assertEquals("compile", extension.getScope());
             Assertions.assertEquals("compile", extension.getScope());
             Assertions.assertFalse(extension.isOptional());
             Assertions.assertFalse(extension.isOptional());
         }
         }

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

@@ -24,8 +24,6 @@ import com.baomidou.mybatisplus.core.handlers.PostInitTableInfoHandler;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
 import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
-import com.baomidou.mybatisplus.extension.compatible.CompatibleHelper;
-import com.baomidou.mybatisplus.extension.compatible.SpringCompatibleSet;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.mapping.DatabaseIdProvider;
 import org.apache.ibatis.mapping.DatabaseIdProvider;
@@ -43,11 +41,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanWrapper;
 import org.springframework.beans.BeanWrapper;
 import org.springframework.beans.BeanWrapperImpl;
 import org.springframework.beans.BeanWrapperImpl;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.beans.factory.BeanFactoryAware;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.beans.factory.ListableBeanFactory;
-import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.beans.factory.*;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
@@ -76,11 +70,7 @@ import org.springframework.util.StringUtils;
 
 
 import javax.sql.DataSource;
 import javax.sql.DataSource;
 import java.beans.PropertyDescriptor;
 import java.beans.PropertyDescriptor;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
+import java.util.*;
 import java.util.function.Consumer;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import java.util.stream.Stream;
@@ -150,9 +140,6 @@ public class MybatisPlusAutoConfiguration implements InitializingBean {
         this.sqlSessionFactoryBeanCustomizers = sqlSessionFactoryBeanCustomizers.getIfAvailable();
         this.sqlSessionFactoryBeanCustomizers = sqlSessionFactoryBeanCustomizers.getIfAvailable();
         this.mybatisPlusPropertiesCustomizers = mybatisPlusPropertiesCustomizerProvider.getIfAvailable();
         this.mybatisPlusPropertiesCustomizers = mybatisPlusPropertiesCustomizerProvider.getIfAvailable();
         this.applicationContext = applicationContext;
         this.applicationContext = applicationContext;
-
-        // 注入兼容配置
-        CompatibleHelper.setCompatibleSet(new SpringCompatibleSet());
     }
     }
 
 
     @Override
     @Override