Skip to content

多租户(forge-starter-tenant)

工程位置:forge-server/forge-framework/forge-starter-parent/forge-starter-tenant。Maven artifactIdforge-starter-tenantsrc/main/java 里有 18 个 Java 文件。

引入

xml
<dependency>
    <groupId>com.mdframe.forge</groupId>
    <artifactId>forge-starter-tenant</artifactId>
</dependency>

自动装配

META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 登记了:

  • com.mdframe.forge.starter.tenant.config.TenantAutoConfiguration

配置属性

forge.business.datasourcecom.mdframe.forge.starter.tenant.datasource.BusinessDataSourceProperties

字段类型类内默认值说明
enabledbooleanfalse是否启用业务侧租户数据源能力。
tenantRoutingEnabledDefaultbooleanfalsesys_config 未配置时是否默认启用租户路由。

forge.tenantcom.mdframe.forge.starter.tenant.config.TenantProperties

字段类型类内默认值说明
enabledBooleantrue是否启用多租户。
columnString"tenant_id"租户字段名。
ignoreTablesList&lt;String&gt;构造时预填平台表,见下表忽略租户的表名列表。这些表不会自动添加租户条件。
ignoreSqlKeywordsList&lt;String&gt;new ArrayList&lt;&gt;()忽略租户的 SQL 关键字。包含这些关键字的 SQL 不会添加租户条件。
strictModeBooleantrue没有租户 ID 时是否抛异常。true 抛异常(严格模式),false 只记警告(宽松模式)。
autoDetectTenantColumnBooleantrue是否自动检测租户字段。true 启动时扫描表结构,没有租户字段的表自动跳过过滤;false 只认 ignoreTables

TenantProperties 构造函数会往 ignoreTables 预填这些平台表(源码注释:平台级表不按当前租户做 SQL 隔离,租户内授权由关联表控制):

sys_tenantsys_resourcesys_clientsys_region_codesys_api_configsys_config_groupsys_excel_column_configsys_excel_export_configsys_file_storage_configsys_job_logsys_job_configgen_datasourcegen_tablegen_table_columnworker_nodesys_id_sequenceai_page_template

类内默认值不是官方启动配置。各服务 application.yml 可以覆盖。

注解

@TenantBusinessDataSource

com.mdframe.forge.starter.tenant.datasource.TenantBusinessDataSource

没有成员。

源码类型清单

下面只列 forge-starter-tenant 自己的公开类型。

接口

  • com.mdframe.forge.starter.tenant.datasource.TenantBusinessDataSourceResolver
  • com.mdframe.forge.starter.tenant.datasource.TenantBusinessDataSourceScope

  • BusinessDataSourceProperties
  • DefaultTenantLineHandler
  • IgnoreTenantAspect
  • TenantAutoConfiguration
  • TenantBusinessDataSourceAspect
  • TenantBusinessDataSourceExecutor
  • TenantBusinessDataSourceInfo
  • TenantBusinessDataSourceTaskDecorator
  • TenantBusinessDataSourceTaskDecoratorPostProcessor
  • TenantContextHolder
  • TenantEntity
  • TenantInterceptor
  • TenantProperties
  • TenantTableChecker
  • TenantUtil

相关文档