feat: 逻辑删除处理器添加对 Spring @Configuration 自动配置的支持

This commit is contained in:
开源海哥 2023-06-24 11:07:59 +08:00
parent 037f0efc78
commit 787a832dab
2 changed files with 33 additions and 1 deletions

View File

@ -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)
具体实现可以参考:[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;
}
}
```

View File

@ -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<DynamicTableProcessor> dynamicTableProcessorProvider,
ObjectProvider<DynamicSchemaProcessor> dynamicSchemaProcessorProvider,
ObjectProvider<TenantFactory> tenantFactoryProvider,
ObjectProvider<LogicDeleteProcessor> logicDeleteProcessorProvider,
ObjectProvider<MyBatisFlexInitializer> 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();