弹簧靴 + 弹簧数据,多租户
2022-09-03 15:31:39
是否可以将 Spring Boot 配置为使用 MultiTenantConnectionProvider,以便我的系统的每个客户端都连接到他们自己的专用数据库?
具体来说,我希望使用内置的休眠支持来多租户:
这是我所追求的那种配置的一个例子,但我不知道如何在Spring Boot设置中使用它:
我尝试将这些属性添加到:application.properties
spring.jpa.hibernate.multiTenancy=DATABASE
spring.jpa.hibernate.tenant_identifier_resolver=com.mystuff.MyCurrentTenantIdentifierResolver
spring.jpa.hibernate.multi_tenant_connection_provider=com.mystuff.MyMultiTenantConnectionProviderImplX
我也尝试过自己编码,并尝试从我的主要@Configuration豆中提供这些:CurrentTenantIdentifierResolver
MultiTenantConnectionProvider
@Bean
public CurrentTenantIdentifierResolver currentTenantIdentifierResolver() {
return new CurrentTenantIdentifierResolver() {
public String resolveCurrentTenantIdentifier() {
// this is never called ...
}
public boolean validateExistingCurrentSessions() {
// this is never called ...
}
};
}
@Bean
public MultiTenantConnectionProvider multiTenantConnectionProvider() {
return new AbstractMultiTenantConnectionProvider() {
protected ConnectionProvider getAnyConnectionProvider() {
// this is never called ...
}
protected ConnectionProvider selectConnectionProvider(String s) {
// this is never called ...
}
};
}
这些似乎都没有任何影响,所以我的问题真的是如何获取spring-boot/spring-data来使用这些多租户类?
感谢您的帮助!