package com.monkeylessey.framework.config;
|
|
import com.baomidou.mybatisplus.annotation.DbType;
|
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 com.monkeylessey.framework.plugins.MybatisPluginDemo;
|
import net.sf.jsqlparser.expression.Expression;
|
import net.sf.jsqlparser.expression.LongValue;
|
import org.apache.ibatis.plugin.Interceptor;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
/**
|
* @author xp
|
* @version 1.0
|
* @date 2022/4/8 0008
|
*/
|
@Configuration
|
@ConditionalOnProperty(prefix = "xp-start", name = "use-tenant", havingValue = "true")
|
public class MybatisPlusConfig {
|
|
@Bean
|
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
// 多租户插件, 需放在分页插件前面
|
interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
|
@Override
|
public Expression getTenantId() {
|
return new LongValue(1);
|
}
|
|
// 这是 default 方法,默认返回 false 表示所有表都需要拼多租户条件
|
@Override
|
public boolean ignoreTable(String tableName) {
|
return !"user".equalsIgnoreCase(tableName);
|
}
|
}));
|
// 配置分页插件
|
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
|
// 自定义plus插件只需要添加进去就行了
|
// interceptor.addInnerInterceptor(new MybatisPlusPluginDemo());
|
return interceptor;
|
}
|
|
/**
|
* mybatis 插件注册写法
|
* @return
|
*/
|
// @Bean
|
public Interceptor[] interceptors() {
|
return new Interceptor[] {new MybatisPluginDemo()};
|
}
|
|
|
}
|