
io.github.wujun728.db.config.TenantAutoConfigure Maven / Gradle / Ivy
package io.github.wujun728.db.config;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
//import io.github.wujun728.common.context.TenantContextHolder;
import io.github.wujun728.common.properties.TenantProperties;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.NullValue;
import net.sf.jsqlparser.expression.StringValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
/**
* 多租户自动配置
*
*/
@EnableConfigurationProperties(TenantProperties.class)
public class TenantAutoConfigure {
@Autowired
private TenantProperties tenantProperties;
@Bean
public TenantLineHandler tenantLineHandler() {
return new TenantLineHandler() {
/**
* 获取租户id
*/
@Override
public Expression getTenantId() {
/*String tenant = TenantContextHolder.getTenant();
if (tenant != null) {
return new StringValue(TenantContextHolder.getTenant());
}*/
return new NullValue();
}
/**
* 过滤不需要根据租户隔离的表
* @param tableName 表名
*/
@Override
public boolean ignoreTable(String tableName) {
return tenantProperties.getIgnoreTables().stream().anyMatch(
(e) -> e.equalsIgnoreCase(tableName)
);
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy