Mam uruchomioną aplikację Jersey napisaną w Javie, używając Hibernate jako implementacji JPA i używając Guice do wiązania wszystkich usług razem.Kontekst utrwalania hibernacji oparty na hoście serwera z Jersey
Mój przypadek użycia polega na posiadaniu jednej instancji aplikacji obsługującej wiele lokalizacji dostępnych pod różnymi hostami. Prostym przykładem może być wersja angielska i wersja francuska na application.com
i application.fr
. W zależności od tego, który host zostanie uruchomiony, będę musiał zmienić aplikację, aby używała innej bazy danych.
Obecnie mam tylko jeden konfigurator singleton SessionFactory
, który jest używany przez wszystkie obiekty dostępu do danych, zapewniając dostęp tylko do jednej bazy danych.
Próbuję wymyślić najłatwiejszy sposób przekazania informacji o kontekście kraju z zasobu (gdzie mogę go pobrać z kontekstu żądania) do DAO, który musi wybrać jeden z wielokrotny SessionFactory
s.
Mogę przekazać parametr w każdej metodzie serwisowej, ale wydaje się to bardzo uciążliwe. Pomyślałem o użyciu rejestru, który miałby instancję ThreadLocal
bieżącego parametru kraju ustawionego przez filtr Jersey, ale użytkownicy nitek włamywali się za pomocą Executorów itp.
Czy istnieją jakieś eleganckie sposoby osiągnięcia tego?
Którą wersję Jersey używasz? –
Korzystamy z usługi Jersey 2.19, aktualizując nieletnich od czasu do czasu – vvondra