Я пытаюсь поддерживать многопользовательскую схему по схеме в приложении весенней загрузки (1.4). У меня есть следующие в моей конфигурации:У реализации MultiTenantConnectionProvider есть null autowired datasource
hibernate:
format_sql: true
default_schema: corrto
multiTenancy: SCHEMA
tenant_identifier_resolver: com.config.HeaderTenantIdentifierResolver
multi_tenant_connection_provider: com.config.SchemaPerTenantConnectionProvider
реализация My MultiTenantConnectionProvider выглядит следующим образом:
public class SchemaPerTenantConnectionProvider implements MultiTenantConnectionProvider {
@Autowired
private DataSource dataSource;
@Override
public Connection getAnyConnection() throws SQLException {
return this.dataSource.getConnection();
}
@Override
public void releaseAnyConnection(Connection connection) throws SQLException {
connection.close();
}
@Override
public Connection getConnection(String tenantIdentifier) throws SQLException {
final Connection connection = this.getAnyConnection();
// need to do stuff here
return connection;
}
@Override
public void releaseConnection(String tenantIdentifier, Connection connection) throws SQLException {
}
@Override
public boolean supportsAggressiveRelease() {
return true;
}
@Override
public boolean isUnwrappableAs(Class unwrapType) {
return false;
}
@Override
public <T> T unwrap(Class<T> unwrapType) {
return null;
}
}
Это не удается, потому что dataSource
равна нулю. Я предполагаю, что он еще не создан, но мне сложно найти решения через Google.
У вас есть источник данных? – Taylor
Не нужно ли 'SchemaPerTenantConnectionProvider' аннотироваться с помощью' @ Component' для того, чтобы быть автоуведомленным? – jny