Динамическое добавление источника данных в источники данных абстрактной маршрутизации в приложении Java Spring BootJAVA

Программисты JAVA общаются здесь
Anonymous
Динамическое добавление источника данных в источники данных абстрактной маршрутизации в приложении Java Spring Boot

Сообщение Anonymous »

У меня запущено мультитенантное Java-приложение, которое использует абстрактные источники данных маршрутизации для реализации мультитенантности. Каждая пара «Ключ»-«Значение» представляет арендатора, и я пытаюсь добавить новую пару «ключ»-«Значение» в источники данных абстрактной маршрутизации, когда новый арендатор входит в систему. Сейчас источники данных настраиваются при запуске. и арендаторы уже есть. Я хочу обработать случай, когда новый арендатор присоединяется во время работы приложения, не перезапуская его.
Я попробовал добавить новый метод addDatasource для обработки этого, как показано ниже.< /p>

Код: Выделить всё

public class MultitenantDataSourceAbstractRoutingDS extends AbstractRoutingDataSource {

@Override
protected String determineCurrentLookupKey() {
return ApTenantContext.getCurrentTenant();
}

@Override
protected DataSource determineTargetDataSource() {
return super.determineTargetDataSource();
}

private final Map targetDataSources = new ConcurrentHashMap();

@Override
public void afterPropertiesSet() {
super.setTargetDataSources(this.targetDataSources);
super.afterPropertiesSet();
}

public void addDataSource(String key, ComboPooledDataSource dataSource) {
this.targetDataSources.put(key, dataSource);
super.setTargetDataSources(this.targetDataSources);
super.afterPropertiesSet();
}

Но менеджер сущностей и менеджер транзакций, связанные с этим, не будут обновлены, оба из них являются bean-компонентами и запускаются при запуске.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ava-spring

Вернуться в «JAVA»