update 优化 mp多租户插件注入逻辑
This commit is contained in:
parent
cf81f641bd
commit
2e08825da8
@ -7,11 +7,13 @@ import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
|
||||||
import org.dromara.common.core.factory.YmlPropertySourceFactory;
|
import org.dromara.common.core.factory.YmlPropertySourceFactory;
|
||||||
import org.dromara.common.core.utils.SpringUtils;
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
import org.dromara.common.mybatis.handler.InjectionMetaObjectHandler;
|
import org.dromara.common.mybatis.handler.InjectionMetaObjectHandler;
|
||||||
import org.dromara.common.mybatis.interceptor.PlusDataPermissionInterceptor;
|
import org.dromara.common.mybatis.interceptor.PlusDataPermissionInterceptor;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.PropertySource;
|
import org.springframework.context.annotation.PropertySource;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
@ -29,6 +31,12 @@ public class MybatisPlusConfig {
|
|||||||
@Bean
|
@Bean
|
||||||
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||||
|
// 多租户插件 必须放到第一位
|
||||||
|
try {
|
||||||
|
TenantLineInnerInterceptor tenant = SpringUtils.getBean(TenantLineInnerInterceptor.class);
|
||||||
|
interceptor.addInnerInterceptor(tenant);
|
||||||
|
} catch (BeansException ignore) {
|
||||||
|
}
|
||||||
// 数据权限处理
|
// 数据权限处理
|
||||||
interceptor.addInnerInterceptor(dataPermissionInterceptor());
|
interceptor.addInnerInterceptor(dataPermissionInterceptor());
|
||||||
// 分页插件
|
// 分页插件
|
||||||
|
@ -2,8 +2,6 @@ package org.dromara.common.tenant.config;
|
|||||||
|
|
||||||
import cn.dev33.satoken.dao.SaTokenDao;
|
import cn.dev33.satoken.dao.SaTokenDao;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
|
||||||
import org.dromara.common.core.utils.reflect.ReflectUtils;
|
import org.dromara.common.core.utils.reflect.ReflectUtils;
|
||||||
import org.dromara.common.mybatis.config.MybatisPlusConfig;
|
import org.dromara.common.mybatis.config.MybatisPlusConfig;
|
||||||
@ -24,9 +22,6 @@ import org.springframework.cache.CacheManager;
|
|||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 租户配置类
|
* 租户配置类
|
||||||
*
|
*
|
||||||
@ -37,23 +32,10 @@ import java.util.List;
|
|||||||
@ConditionalOnProperty(value = "tenant.enable", havingValue = "true")
|
@ConditionalOnProperty(value = "tenant.enable", havingValue = "true")
|
||||||
public class TenantConfig {
|
public class TenantConfig {
|
||||||
|
|
||||||
/**
|
|
||||||
* 初始化租户配置
|
|
||||||
*/
|
|
||||||
@Bean
|
|
||||||
public boolean tenantInit(MybatisPlusInterceptor mybatisPlusInterceptor,
|
|
||||||
TenantProperties tenantProperties) {
|
|
||||||
List<InnerInterceptor> interceptors = new ArrayList<>();
|
|
||||||
// 多租户插件 必须放到第一位
|
|
||||||
interceptors.add(tenantLineInnerInterceptor(tenantProperties));
|
|
||||||
interceptors.addAll(mybatisPlusInterceptor.getInterceptors());
|
|
||||||
mybatisPlusInterceptor.setInterceptors(interceptors);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 多租户插件
|
* 多租户插件
|
||||||
*/
|
*/
|
||||||
|
@Bean
|
||||||
public TenantLineInnerInterceptor tenantLineInnerInterceptor(TenantProperties tenantProperties) {
|
public TenantLineInnerInterceptor tenantLineInnerInterceptor(TenantProperties tenantProperties) {
|
||||||
return new TenantLineInnerInterceptor(new PlusTenantLineHandler(tenantProperties));
|
return new TenantLineInnerInterceptor(new PlusTenantLineHandler(tenantProperties));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user