From 787a832dab9188b40bce9d3ea70d489e837fe27b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=B5=B7=E5=93=A5?= Date: Sat, 24 Jun 2023 11:07:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=99=A8=E6=B7=BB=E5=8A=A0=E5=AF=B9=20Spring?= =?UTF-8?q?=20@Configuration=20=E8=87=AA=E5=8A=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh/core/logic-delete.md | 20 ++++++++++++++++++- .../boot/MybatisFlexAutoConfiguration.java | 14 +++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/zh/core/logic-delete.md b/docs/zh/core/logic-delete.md index 59f3cb9d..01e51250 100644 --- a/docs/zh/core/logic-delete.md +++ b/docs/zh/core/logic-delete.md @@ -179,4 +179,22 @@ public interface LogicDeleteProcessor { } ``` -具体实现可以参考:[DefaultLogicDeleteProcessorImpl](https://gitee.com/mybatis-flex/mybatis-flex/blob/main/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/DefaultLogicDeleteProcessorImpl.java) \ No newline at end of file +具体实现可以参考:[DefaultLogicDeleteProcessorImpl](https://gitee.com/mybatis-flex/mybatis-flex/blob/main/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/DefaultLogicDeleteProcessorImpl.java) + + +## SpringBoot 支持 + +在 SpringBoot 项目下,直接通过 `@Configuration` 即可使用: + +```java +@Configuration +public class MyConfiguration { + + @Bean + public LogicDeleteProcessor logicDeleteProcessor(){ + LogicDeleteProcessor processor = new ....; + return processor; + } + +} +``` \ No newline at end of file diff --git a/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/MybatisFlexAutoConfiguration.java b/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/MybatisFlexAutoConfiguration.java index 6c99fda0..96996a33 100644 --- a/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/MybatisFlexAutoConfiguration.java +++ b/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/MybatisFlexAutoConfiguration.java @@ -18,6 +18,8 @@ package com.mybatisflex.spring.boot; import com.mybatisflex.core.FlexGlobalConfig; import com.mybatisflex.core.datasource.DataSourceDecipher; import com.mybatisflex.core.datasource.DataSourceManager; +import com.mybatisflex.core.logicdelete.LogicDeleteManager; +import com.mybatisflex.core.logicdelete.LogicDeleteProcessor; import com.mybatisflex.core.mybatis.FlexConfiguration; import com.mybatisflex.core.table.DynamicSchemaProcessor; import com.mybatisflex.core.table.DynamicTableProcessor; @@ -121,6 +123,9 @@ public class MybatisFlexAutoConfiguration implements InitializingBean { //多租户 protected final TenantFactory tenantFactory; + //自定义逻辑删除处理器 + protected final LogicDeleteProcessor logicDeleteProcessor; + //初始化监听 protected final MyBatisFlexInitializer myBatisFlexInitializer; @@ -134,6 +139,7 @@ public class MybatisFlexAutoConfiguration implements InitializingBean { ObjectProvider dynamicTableProcessorProvider, ObjectProvider dynamicSchemaProcessorProvider, ObjectProvider tenantFactoryProvider, + ObjectProvider logicDeleteProcessorProvider, ObjectProvider myBatisFlexInitializerProvider ) { this.properties = properties; @@ -155,6 +161,9 @@ public class MybatisFlexAutoConfiguration implements InitializingBean { //多租户 this.tenantFactory = tenantFactoryProvider.getIfAvailable(); + //逻辑删除处理器 + this.logicDeleteProcessor = logicDeleteProcessorProvider.getIfAvailable(); + //初始化监听器 this.myBatisFlexInitializer = myBatisFlexInitializerProvider.getIfAvailable(); } @@ -182,6 +191,11 @@ public class MybatisFlexAutoConfiguration implements InitializingBean { TenantManager.setTenantFactory(tenantFactory); } + //逻辑删除处理器 + if (logicDeleteProcessor != null) { + LogicDeleteManager.setProcessor(logicDeleteProcessor); + } + //初始化监听器 if (myBatisFlexInitializer != null) { myBatisFlexInitializer.onInitBefore();