@synapse_people

Как получить контекст в сервисе Spring?

Каким образом можно получить контекст в сервисе?
Имеется сервис, который позволяет каждому зарегистр. и получить свою партнерку. Каждая партнерка на своем домене..
Как лучше реализовать их разделение? То есть, иметь 1 web app партнерки и создавать для каждой партнерки свой вирт.хост, переменными среды передавая айди партнерки ИЛИ запускать 1 контекст ДЛЯ ВСЕХ, а затем интерцекторами получать партнерку по заголовку Хост?

Например, Web App с сервлетом на / висит по partner/, nginx далее проксирует все запросы на этот адрес.
Handler Interceptor получает Host и добавляет аттрибут сущности партнерки в запрос..
При этом в каждый сервис нужно передавать эту сущность или ID партнерки в виде первого аргумента.
Например, UserService::userExists(int ppId, String login);
Можно ли как-то вызывать UserService.userExists(login), и чтобы контекст партнерки получался внутри сервиса?
Как будет правильно, передавать сущность партнерки в сервис или ID, или, чтобы сервис знал о том, какая это партнерка:?

Есть еще вариант, для каждой партнерки создавать свою базу данных, а не как сейчас использовать столбик `program_id`. Но тогда возникает вопрос дублирования данных бд, если партнерка будет на другом сервере..

Вообще, можно сделать в контексте партнерок интерфейсы сервисов и вызывать их на основном сервере через Hessian, но как основной сервер поймет, а какая именно партнерка запрашивает данные?...

В общем, каша... Помогие советами
  • Вопрос задан
  • 490 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы