Динамическое добавление источника данных в источники данных абстрактной маршрутизации в приложении 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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