From 8812da14ee891b688324f9e254a8945876dbd134 Mon Sep 17 00:00:00 2001
From: yulichang <570810310@qq.com>
Date: Sat, 12 Nov 2022 01:51:49 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=A8=A1=E5=9D=97=E5=8C=96?=
=?UTF-8?q?=202.0.0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 6 +--
mybatis-plus-join-annotation/pom.xml | 17 +++++--
mybatis-plus-join-boot-starter/pom.xml | 24 ++++++---
.../MybatisPlusJoinAutoConfiguration.java | 51 ++++++++++++++-----
mybatis-plus-join-core/pom.xml | 28 ++++++++--
.../yulichang/config/InterceptorConfig.java | 2 +-
.../yulichang/config/MappingConfig.java | 9 ++--
.../yulichang/injector/MPJSqlInjector.java | 7 ++-
.../yulichang/mapper/MPJTableFieldInfo.java | 2 +-
.../yulichang/toolkit/SpringContentUtils.java | 22 ++++----
mybatis-plus-join-test/pom.xml | 18 +++++--
pom.xml | 24 +++------
12 files changed, 134 insertions(+), 76 deletions(-)
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
-