8 Commits a757e5f966 ... 9ae6730d0e

Author SHA1 Message Date
  hubin 9ae6730d0e 解耦部分包重名为 spi 6 months ago
  hubin 63224f3224 测试用例检查Bug修改 6 months ago
  hubin 3b75211528 解耦kt部分测试移动至spring模块 6 months ago
  hubin b2b10eb77a 解耦spring兼容修改为spi方式加载 6 months ago
  hubin 8376d1b19a Merge branch '3.0' of https://github.com/baomidou/mybatis-plus into github3.0 6 months ago
  hubin f6b5a9b054 依赖关系检查调整 6 months ago
  nieqiurong 1673c0a8af 编译失败. 6 months ago
  hubin 659bfdda70 测试用例bug修复 6 months ago
20 changed files with 17 additions and 37 deletions
  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 "com.github.ben-manes.caffeine:caffeine:2.9.3"
     testImplementation "io.github.classgraph:classgraph:4.8.176"
+    testImplementation "${lib."spring-context-support"}"
     testImplementation "${lib.h2}"
     testImplementation "${lib.mysql}"
     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.TableInfoHelper;
 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 org.apache.ibatis.logging.LogFactory;
 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.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.toolkit.JdbcUtils;
 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
  * 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;
 
     public static CompatibleSet getCompatibleSet() {
-        return COMPATIBLE_SET;
-    }
-
-    public static void setCompatibleSet(CompatibleSet compatibleSet) {
         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
  * 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.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.toolkit.*;
 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.logging.Log;
 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");
             Assertions.assertEquals("compile", core.getScope());
             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");
             Assertions.assertEquals("compile", kotlinStdlib.getScope());
             Assertions.assertTrue(kotlinStdlib.isOptional());
             Dependency kotlinReflect = dependenciesMap.get("kotlin-reflect");
             Assertions.assertEquals("compile", kotlinReflect.getScope());
             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");
             Assertions.assertEquals("compile", slf4jApi.getScope());
             Assertions.assertTrue(slf4jApi.isOptional());

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

@@ -1,5 +1,5 @@
 dependencies {
-    implementation project(":mybatis-plus-extension")
+    implementation project(":mybatis-plus-spring")
     implementation "${lib.velocity}"
     implementation "${lib.freemarker}"
     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
  * limitations under the License.
  */
-package com.baomidou.mybatisplus.extension.compatible;
+package com.baomidou.mybatisplus.extension.spi;
 
 import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 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();
                 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.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.IdentifierGenerator;
 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 org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.mapping.DatabaseIdProvider;
@@ -43,11 +41,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanWrapper;
 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.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
@@ -76,11 +70,7 @@ import org.springframework.util.StringUtils;
 
 import javax.sql.DataSource;
 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.stream.Collectors;
 import java.util.stream.Stream;
@@ -150,9 +140,6 @@ public class MybatisPlusAutoConfiguration implements InitializingBean {
         this.sqlSessionFactoryBeanCustomizers = sqlSessionFactoryBeanCustomizers.getIfAvailable();
         this.mybatisPlusPropertiesCustomizers = mybatisPlusPropertiesCustomizerProvider.getIfAvailable();
         this.applicationContext = applicationContext;
-
-        // 注入兼容配置
-        CompatibleHelper.setCompatibleSet(new SpringCompatibleSet());
     }
 
     @Override