From b2b10eb77a2ec38140256fe264aac435174b89dc Mon Sep 17 00:00:00 2001 From: hubin Date: Wed, 16 Oct 2024 17:28:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E8=80=A6spring=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BAspi=E6=96=B9=E5=BC=8F=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extension/compatible/CompatibleHelper.java | 12 ++++++------ mybatis-plus-generator/build.gradle | 1 - ...batisplus.extension.compatible.CompatibleSet | 1 + .../baomidou/mybatisplus/test/BaseDbTest.java | 5 ----- .../MybatisPlusAutoConfiguration.java | 17 ++--------------- 5 files changed, 9 insertions(+), 27 deletions(-) create mode 100644 mybatis-plus-spring/src/main/resources/META-INF/services/com.baomidou.mybatisplus.extension.compatible.CompatibleSet diff --git a/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/compatible/CompatibleHelper.java b/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/compatible/CompatibleHelper.java index 63094b28f..bda9dcd01 100644 --- a/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/compatible/CompatibleHelper.java +++ b/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/compatible/CompatibleHelper.java @@ -15,6 +15,8 @@ */ package com.baomidou.mybatisplus.extension.compatible; +import java.util.ServiceLoader; + /** * 兼容处理辅助类 */ @@ -23,12 +25,10 @@ public class CompatibleHelper { private static CompatibleSet COMPATIBLE_SET; public static CompatibleSet getCompatibleSet() { + if (null == COMPATIBLE_SET) { + ServiceLoader loader = ServiceLoader.load(CompatibleSet.class); + COMPATIBLE_SET = loader.iterator().next(); + } return COMPATIBLE_SET; } - - public static void setCompatibleSet(CompatibleSet compatibleSet) { - if (null == COMPATIBLE_SET) { - COMPATIBLE_SET = compatibleSet; - } - } } diff --git a/mybatis-plus-generator/build.gradle b/mybatis-plus-generator/build.gradle index b56827b0e..c1680be6a 100644 --- a/mybatis-plus-generator/build.gradle +++ b/mybatis-plus-generator/build.gradle @@ -1,5 +1,4 @@ dependencies { - implementation project(":mybatis-plus-extension") implementation project(":mybatis-plus-spring") implementation "${lib.velocity}" implementation "${lib.freemarker}" diff --git a/mybatis-plus-spring/src/main/resources/META-INF/services/com.baomidou.mybatisplus.extension.compatible.CompatibleSet b/mybatis-plus-spring/src/main/resources/META-INF/services/com.baomidou.mybatisplus.extension.compatible.CompatibleSet new file mode 100644 index 000000000..c4e0edd83 --- /dev/null +++ b/mybatis-plus-spring/src/main/resources/META-INF/services/com.baomidou.mybatisplus.extension.compatible.CompatibleSet @@ -0,0 +1 @@ +com.baomidou.mybatisplus.extension.compatible.SpringCompatibleSet diff --git a/mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/BaseDbTest.java b/mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/BaseDbTest.java index becd13536..c348ee83d 100644 --- a/mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/BaseDbTest.java +++ b/mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/BaseDbTest.java @@ -8,8 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils; import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; -import com.baomidou.mybatisplus.extension.compatible.CompatibleHelper; -import com.baomidou.mybatisplus.extension.compatible.SpringCompatibleSet; import org.apache.ibatis.io.Resources; import org.apache.ibatis.logging.slf4j.Slf4jImpl; import org.apache.ibatis.mapping.Environment; @@ -89,9 +87,6 @@ public abstract class BaseDbTest extends TypeReference { interceptors.forEach(configuration::addInterceptor); } sqlSessionFactory = builder.build(configuration); - - // 注入 spring 兼容配置 - CompatibleHelper.setCompatibleSet(new SpringCompatibleSet()); } private DataSource dataSource() { diff --git a/spring-boot-starter/mybatis-plus-spring-boot-autoconfigure/src/main/java/com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.java b/spring-boot-starter/mybatis-plus-spring-boot-autoconfigure/src/main/java/com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.java index 84c53e848..a845afb46 100644 --- a/spring-boot-starter/mybatis-plus-spring-boot-autoconfigure/src/main/java/com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.java +++ b/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