Browse Source

:tada: 2.7.3.RELEASE 升级多租户模块

smallchill 4 years ago
parent
commit
fe850c71e9

+ 1 - 1
blade-core-boot/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springblade</groupId>
         <artifactId>blade-tool</artifactId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 28 - 4
blade-core-boot/src/main/java/org/springblade/core/boot/config/MybatisPlusConfiguration.java

@@ -15,7 +15,12 @@
  */
 package org.springblade.core.boot.config;
 
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
+import lombok.AllArgsConstructor;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springblade.core.mp.plugins.SqlLogInterceptor;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -29,13 +34,32 @@ import org.springframework.context.annotation.Configuration;
  * @author Chill
  */
 @Configuration
+@AllArgsConstructor
 @MapperScan("org.springblade.**.mapper.**")
 public class MybatisPlusConfiguration {
 
+	private final TenantLineHandler tenantLineHandler;
+
+	/**
+	 * mybatis-plus 拦截器集合
+	 */
+	@Bean
+	@ConditionalOnMissingBean(MybatisPlusInterceptor.class)
+	public MybatisPlusInterceptor mybatisPlusInterceptor() {
+		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+		// 配置租户拦截器
+		interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(tenantLineHandler));
+		// 配置分页拦截器
+		interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
+		return interceptor;
+	}
+
+	/**
+	 * mybatis-plus自3.4.0起采用新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+	 */
 	@Bean
-	@ConditionalOnMissingBean(PaginationInterceptor.class)
-	public PaginationInterceptor paginationInterceptor() {
-		return new PaginationInterceptor();
+	public ConfigurationCustomizer configurationCustomizer() {
+		return configuration -> configuration.setUseDeprecatedExecutor(false);
 	}
 
 	/**

+ 5 - 5
blade-core-boot/src/main/java/org/springblade/core/boot/tenant/BladeTenantHandler.java

@@ -15,7 +15,7 @@
  */
 package org.springblade.core.boot.tenant;
 
-import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
+import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import net.sf.jsqlparser.expression.Expression;
@@ -31,7 +31,7 @@ import org.springblade.core.tool.utils.StringUtil;
  */
 @Slf4j
 @AllArgsConstructor
-public class BladeTenantHandler implements TenantHandler {
+public class BladeTenantHandler implements TenantLineHandler {
 
 	private final BladeTenantProperties properties;
 
@@ -41,7 +41,7 @@ public class BladeTenantHandler implements TenantHandler {
 	 * @return 租户ID
 	 */
 	@Override
-	public Expression getTenantId(boolean where) {
+	public Expression getTenantId() {
 		return new StringValue(Func.toStr(SecureUtil.getTenantId(), TenantConstant.DEFAULT_TENANT_ID));
 	}
 
@@ -59,10 +59,10 @@ public class BladeTenantHandler implements TenantHandler {
 	 * 过滤租户表
 	 *
 	 * @param tableName 表名
-	 * @return 是否进行过滤
+	 * @return 是否忽略, true:表示忽略,false:需要解析并拼接多租户条件
 	 */
 	@Override
-	public boolean doTableFilter(String tableName) {
+	public boolean ignoreTable(String tableName) {
 		return !(
 			(
 				(properties.getTables().size() > 0 && properties.getTables().contains(tableName))

+ 3 - 26
blade-core-boot/src/main/java/org/springblade/core/boot/tenant/TenantConfiguration.java

@@ -15,10 +15,7 @@
  */
 package org.springblade.core.boot.tenant;
 
-import com.baomidou.mybatisplus.core.parser.ISqlParser;
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
-import com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser;
+import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.config.MybatisPlusConfiguration;
 import org.springframework.boot.autoconfigure.AutoConfigureBefore;
@@ -27,9 +24,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * 多租户配置类
  *
@@ -52,8 +46,8 @@ public class TenantConfiguration {
 	 * @return TenantHandler
 	 */
 	@Bean
-	@ConditionalOnMissingBean(TenantHandler.class)
-	public TenantHandler bladeTenantHandler() {
+	@ConditionalOnMissingBean(TenantLineHandler.class)
+	public TenantLineHandler bladeTenantHandler() {
 		return new BladeTenantHandler(properties);
 	}
 
@@ -68,21 +62,4 @@ public class TenantConfiguration {
 		return new BladeTenantId();
 	}
 
-	/**
-	 * 分页插件
-	 *
-	 * @param tenantHandler 自定义租户处理器
-	 * @return PaginationInterceptor
-	 */
-	@Bean
-	public PaginationInterceptor paginationInterceptor(TenantHandler tenantHandler) {
-		PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
-		List<ISqlParser> sqlParserList = new ArrayList<>();
-		TenantSqlParser tenantSqlParser = new TenantSqlParser();
-		tenantSqlParser.setTenantHandler(tenantHandler);
-		sqlParserList.add(tenantSqlParser);
-		paginationInterceptor.setSqlParserList(sqlParserList);
-		return paginationInterceptor;
-	}
-
 }

+ 1 - 1
blade-core-boot/src/main/resources/bootstrap.yml

@@ -97,7 +97,7 @@ mybatis-plus:
 swagger:
   title: SpringBlade 接口文档系统
   description: SpringBlade 接口文档系统
-  version: 2.7.2
+  version: 2.7.3
   license: Powered By SpringBlade
   licenseUrl: https://bladex.vip
   terms-of-service-url: https://bladex.vip

+ 1 - 1
blade-core-cloud/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-develop/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-launch/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-launch/src/main/java/org/springblade/core/launch/constant/AppConstant.java

@@ -25,7 +25,7 @@ public interface AppConstant {
 	/**
 	 * 应用版本
 	 */
-	String APPLICATION_VERSION = "2.7.2";
+	String APPLICATION_VERSION = "2.7.3";
 
 	/**
 	 * 基础包

+ 1 - 1
blade-core-log/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-mybatis/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-oss/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-secure/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-social/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-swagger/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerProperties.java

@@ -55,7 +55,7 @@ public class SwaggerProperties {
 	/**
 	 * 版本
 	 **/
-	private String version = "2.7.2";
+	private String version = "2.7.3";
 	/**
 	 * 许可证
 	 **/

+ 1 - 1
blade-core-test/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springblade</groupId>
         <artifactId>blade-tool</artifactId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-tool/pom.xml

@@ -6,7 +6,7 @@
     <parent>
         <groupId>org.springblade</groupId>
         <artifactId>blade-tool</artifactId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-transaction/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.7.2</version>
+        <version>2.7.3</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 4 - 4
pom.xml

@@ -5,7 +5,7 @@
 
     <groupId>org.springblade</groupId>
     <artifactId>blade-tool</artifactId>
-    <version>2.7.2</version>
+    <version>2.7.3</version>
     <packaging>pom</packaging>
     <name>blade-tool</name>
     <description>
@@ -36,14 +36,14 @@
     </scm>
 
     <properties>
-        <blade.tool.version>2.7.2</blade.tool.version>
+        <blade.tool.version>2.7.3</blade.tool.version>
 
         <java.version>1.8</java.version>
         <maven.plugin.version>3.8.0</maven.plugin.version>
         <swagger.version>2.9.2</swagger.version>
         <swagger.models.version>1.5.21</swagger.models.version>
         <knife4j.version>2.0.4</knife4j.version>
-        <mybatis.plus.version>3.3.2</mybatis.plus.version>
+        <mybatis.plus.version>3.4.0</mybatis.plus.version>
         <protostuff.version>1.6.0</protostuff.version>
         <disruptor.version>3.4.2</disruptor.version>
         <spring.boot.admin.version>2.3.0</spring.boot.admin.version>
@@ -52,7 +52,7 @@
         <alibaba.seata.version>1.3.0</alibaba.seata.version>
 
         <spring.boot.version>2.2.9.RELEASE</spring.boot.version>
-        <spring.cloud.version>Hoxton.SR7</spring.cloud.version>
+        <spring.cloud.version>Hoxton.SR8</spring.cloud.version>
         <spring.platform.version>Cairo-SR8</spring.platform.version>
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>