2016-04-28 3 views
0

Я разработал приложение с пружинным уплотнением. Мне нравится, и это работает как чары.Весна JPA сменяет источник данных в зависимости от заголовка запроса

Что я хочу сделать (для реализации одного бэкэнда для нескольких клиентов) является изменение источника данных моего репозитория в зависимости от apikey, который отправляется в пользовательском заголовке запроса.

Информация о соединении (url, credentials, database) может быть получена из внешнего микросервиса, который управляет всеми конфигурациями базы данных.

Идея состоит в том, чтобы получить все доступные соединения с базой данных при запуске и сохранить их на карте с помощью apikey как ключа, а информация о соединении - как значение.

Я не понимаю, как я могу изменить источник данных своего репо для каждого входящего запроса во время выполнения.

Любые идеи?

ответ

2

В зависимости от вашего провайдера JPA, то, что вы хотите, будет поддерживать многоуровневое обслуживание.

Для Hibernate существует хороший API multi-tenancy, который легко подключается к Spring с целью настройки того, какой источник данных использовать. MultiTenantConnectionProvider и CurrentTenantIdentifierResolver для некоторых деталей API.

+0

Спасибо за ваш ответ. multi-tenancy подтолкнуло меня в правильном направлении. Положитесь на это. –

Смежные вопросы