Ho un'applicazione di jogging in esecuzione scritta in Java che utilizza Hibernate come implementazione JPA e che utilizza Guice per associare tutti i servizi.Hibernate context di persistenza basato sull'host del server con Jersey
Il mio caso di utilizzo consiste nell'avere un'istanza di app che serve più localizzazioni, disponibile in host diversi. Un semplice esempio potrebbe essere una versione inglese e una versione francese su application.com
e application.fr
. A seconda dell'host che viene attivato, avrei bisogno di cambiare l'app per utilizzare un database diverso.
Attualmente, ho configurato solo un singleton SessionFactory
che viene utilizzato da tutti gli oggetti di accesso ai dati, fornendo accesso a un solo database.
Sto cercando di trovare il modo più semplice per passare le informazioni sul contesto del paese dalla risorsa (dove posso recuperarla dal contesto della richiesta) al DAO, che deve selezionare uno dei più SessionFactory
s.
Potrei passare un parametro in ogni metodo di servizio, ma sembra molto noioso. Ho pensato di utilizzare un registro che avrebbe un'istanza ThreadLocal
del parametro del paese corrente impostato da un filtro Jersey, ma i thread-locals interromperanno l'utilizzo di Executors ecc.
Esistono modi eleganti per raggiungere questo obiettivo?
Quale versione di Jersey stai usando? –
Usiamo Jersey 2.19, aggiornando i minori di volta in volta – vvondra