diff --git a/README.md b/README.md index a2eb8e4..2931923 100644 --- a/README.md +++ b/README.md @@ -14,13 +14,13 @@ QQ群:1022221898 ```xml com.github.yulichang - mybatis-plus-join - 1.3.0 + mybatis-plus-join-boot-starter + 2.0.0 ``` - Gradle ``` - implementation 'com.github.yulichang:mybatis-plus-join:1.3.0' + implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:2.0.0' ``` 或者clone代码到本地执行 mvn install, 再引入以上依赖
diff --git a/mybatis-plus-join-annotation/pom.xml b/mybatis-plus-join-annotation/pom.xml index fe7ac02..d662729 100644 --- a/mybatis-plus-join-annotation/pom.xml +++ b/mybatis-plus-join-annotation/pom.xml @@ -6,7 +6,7 @@ com.github.yulichang mybatis-plus-join-root - 1.3.0 + 2.0.0 mybatis-plus-join-annotation mybatis-plus-join-annotation @@ -33,9 +33,20 @@ - 8 - 8 + 1.8 + 1.8 + 1.8 + 1.8 + github UTF-8 + + + com.baomidou + mybatis-plus-core + ${mybatis-plus.version} + provided + + \ No newline at end of file diff --git a/mybatis-plus-join-boot-starter/pom.xml b/mybatis-plus-join-boot-starter/pom.xml index d4fbc88..a5eb38b 100644 --- a/mybatis-plus-join-boot-starter/pom.xml +++ b/mybatis-plus-join-boot-starter/pom.xml @@ -6,7 +6,7 @@ com.github.yulichang mybatis-plus-join-root - 1.3.0 + 2.0.0 mybatis-plus-join-boot-starter mybatis-plus-join-boot-starter @@ -33,8 +33,11 @@ - 8 - 8 + 1.8 + 1.8 + 1.8 + 1.8 + github UTF-8 @@ -44,14 +47,23 @@ mybatis-plus-join-core ${mybaits-plus-join.version} - org.springframework.boot spring-boot-configuration-processor true 2.7.5 + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + provided + + + org.projectlombok + lombok + ${lombok.version} + provided + - - \ No newline at end of file diff --git a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java index f1f52a2..6940776 100644 --- a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java +++ b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.injector.AbstractSqlInjector; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; import com.baomidou.mybatisplus.core.injector.ISqlInjector; import com.github.yulichang.config.InterceptorConfig; -import com.github.yulichang.config.MappingConfig; import com.github.yulichang.injector.MPJSqlInjector; import com.github.yulichang.interceptor.MPJInterceptor; import com.github.yulichang.toolkit.SpringContentUtils; @@ -13,13 +12,18 @@ import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; @@ -78,24 +82,43 @@ public class MybatisPlusJoinAutoConfiguration { return new MPJSqlInjector(); } - /** - * 多表查询注解 - * - * @deprecated - */ - @Bean - @Order(Ordered.HIGHEST_PRECEDENCE) - public MappingConfig mappingConfig() { - return new MappingConfig(); - } - /** * springboot content 工具类 */ @Bean @Order(Ordered.HIGHEST_PRECEDENCE) - public SpringContentUtils springContentUtils() { - return new SpringContentUtils(); + @SuppressWarnings("InstantiationOfUtilityClass") + public SpringContentUtils springContentUtils(SpringContext springContext) { + return new SpringContentUtils(springContext); + } + + @Configuration + @Order(Ordered.HIGHEST_PRECEDENCE) + @ConditionalOnBean(SqlSessionFactory.class) + public static class MappingConfig implements ApplicationListener { + @Override + @SuppressWarnings("NullableProblems") + public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) { + new com.github.yulichang.config.MappingConfig(); + } + } + + @Configuration + @ConditionalOnBean(SqlSessionFactory.class) + public static class SpringContext implements SpringContentUtils.SpringContext, ApplicationContextAware { + + private ApplicationContext applicationContext; + + @Override + public T getBean(Class clazz) { + return this.applicationContext.getBean(clazz); + } + + @Override + @SuppressWarnings("NullableProblems") + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext; + } } } diff --git a/mybatis-plus-join-core/pom.xml b/mybatis-plus-join-core/pom.xml index 164d398..cbf88f2 100644 --- a/mybatis-plus-join-core/pom.xml +++ b/mybatis-plus-join-core/pom.xml @@ -6,7 +6,7 @@ com.github.yulichang mybatis-plus-join-root - 1.3.0 + 2.0.0 mybatis-plus-join-core mybatis-plus-join-core @@ -32,10 +32,12 @@ https://github.com/yulichang/mybatis-plus-join - - 8 - 8 + 1.8 + 1.8 + 1.8 + 1.8 + github UTF-8 @@ -45,5 +47,23 @@ mybatis-plus-join-annotation ${mybaits-plus-join.version} + + com.baomidou + mybatis-plus-extension + ${mybatis-plus.version} + provided + + + org.projectlombok + lombok + ${lombok.version} + provided + + + org.springframework + spring-aop + 5.3.23 + provided + \ No newline at end of file diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/InterceptorConfig.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/InterceptorConfig.java index 6bb41b1..ad1b06b 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/InterceptorConfig.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/InterceptorConfig.java @@ -28,7 +28,7 @@ public class InterceptorConfig { //打印banner System.out.println(" _ _ |_ _ _|_. ___ _ | _ . _ . _ \n" + "| | |\\/|_)(_| | |_\\ |_)||_|_\\ | (_) | | | \n" + - " / | / 1.3.0"); + " / | / 2.0.0"); } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/MappingConfig.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/MappingConfig.java index 0012a1a..3d8d63e 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/MappingConfig.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/MappingConfig.java @@ -3,8 +3,6 @@ package com.github.yulichang.config; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.github.yulichang.mapper.MPJTableMapperHelper; -import org.springframework.boot.context.event.ApplicationReadyEvent; -import org.springframework.context.ApplicationListener; /** * 关系映射配置 @@ -12,12 +10,11 @@ import org.springframework.context.ApplicationListener; * @author yulichang * @since 1.2.0 */ -public class MappingConfig implements ApplicationListener { +public class MappingConfig { - @Override - @SuppressWarnings("NullableProblems") - public void onApplicationEvent(ApplicationReadyEvent event) { + public MappingConfig() { TableInfoHelper.getTableInfos().forEach(i -> MPJTableInfoHelper.initTableInfo(i.getEntityType(), MPJTableMapperHelper.get(i.getEntityType()))); } + } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java index 58e7ee8..9056174 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java @@ -28,9 +28,6 @@ import static java.util.stream.Collectors.toList; */ public class MPJSqlInjector extends DefaultSqlInjector { - private static final List METHOD_LIST = Arrays.asList("SelectOne", "SelectCount", - "SelectMaps", "SelectMapsPage", "SelectObjs", "SelectList", "SelectPage"); - /** * 升级到 mybatis plus 3.4.3.2 后对之前的版本兼容 @@ -59,8 +56,10 @@ public class MPJSqlInjector extends DefaultSqlInjector { */ @Override public List getMethodList(Class mapperClass, TableInfo tableInfo) { + List methodList = Arrays.asList("SelectOne", "SelectCount", + "SelectMaps", "SelectMapsPage", "SelectObjs", "SelectList", "SelectPage"); List list = super.getMethodList(mapperClass, tableInfo); - list.removeIf(i -> METHOD_LIST.contains(i.getClass().getSimpleName())); + list.removeIf(i -> methodList.contains(i.getClass().getSimpleName())); list.addAll(getSelectMethod()); list.addAll(getJoinMethod()); return list; diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/mapper/MPJTableFieldInfo.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/mapper/MPJTableFieldInfo.java index dfef2dd..5d0b036 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/mapper/MPJTableFieldInfo.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/mapper/MPJTableFieldInfo.java @@ -279,7 +279,7 @@ public class MPJTableFieldInfo { if (joinTableInfo == null) { throw new MPJException("未注册 mapper " + this.joinClass.getName()); } - this.joinMapper = (BaseMapper) SpringContentUtils.getApplicationContext().getBean(joinTableInfo.getMapperClass()); + this.joinMapper = (BaseMapper) SpringContentUtils.getBean(joinTableInfo.getMapperClass()); } return this.joinMapper; } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/SpringContentUtils.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/SpringContentUtils.java index a66a235..7067b9b 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/SpringContentUtils.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/SpringContentUtils.java @@ -1,8 +1,5 @@ package com.github.yulichang.toolkit; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; /** * spring容器工具类 @@ -10,17 +7,20 @@ import org.springframework.context.ApplicationContextAware; * @author yulichang * @since 1.2.0 */ -public class SpringContentUtils implements ApplicationContextAware { +public class SpringContentUtils { - private static ApplicationContext context; + private static SpringContext springContext; - @Override - @SuppressWarnings("NullableProblems") - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - context = applicationContext; + public SpringContentUtils(SpringContext springContext) { + SpringContentUtils.springContext = springContext; } - public static ApplicationContext getApplicationContext() { - return context; + public static T getBean(Class clazz) { + return SpringContentUtils.springContext.getBean(clazz); + } + + public interface SpringContext { + + T getBean(Class clazz); } } diff --git a/mybatis-plus-join-test/pom.xml b/mybatis-plus-join-test/pom.xml index 5342ae9..fc888f6 100644 --- a/mybatis-plus-join-test/pom.xml +++ b/mybatis-plus-join-test/pom.xml @@ -7,7 +7,7 @@ com.github.yulichang mybatis-plus-join-root - 1.3.0 + 2.0.0 mybatis-plus-join-test mybatis-plus-join-test @@ -36,8 +36,11 @@ 2.5.4 - 8 - 8 + 1.8 + 1.8 + 1.8 + 1.8 + github UTF-8 @@ -62,12 +65,17 @@ org.projectlombok lombok - 1.18.24 + ${lombok.version} + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} com.github.yulichang mybatis-plus-join-boot-starter - 1.3.0 + ${mybaits-plus-join.version} diff --git a/pom.xml b/pom.xml index c76f495..f7a7274 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.github.yulichang mybatis-plus-join-root pom - ${mybaits-plus-join.version} + 2.0.0 mybatis-plus-join-root An enhanced toolkit of Mybatis-Plus to simplify development. @@ -37,31 +37,19 @@ - 1.3.0 + 2.0.0 + 3.5.2 + 1.18.24 - UTF-8 - github 1.8 1.8 - 1.8 1.8 + github + UTF-8 - - - com.baomidou - mybatis-plus-boot-starter - 3.5.2 - provided - - - org.projectlombok - lombok - 1.18.24 - provided -