La mia domanda non riguarda come usare la sessione HTTP o come i valori vengono usati nella sessione. La domanda è più orientata all'approccio.
Nella mia attuale applicazione ci sono pochi valori memorizzati nella Session e richiediamo quei valori ogni ora e non, qui ci sono alcuni valori che recuperiamo dalla sessione
- Conservare
- Lingua
- Clienti
- pochi altri
Posso recuperare questi valori dalla sessione come
request.getSession().getAttribute( "name" )
Ho bisogno di quei valori non direttamente nel mio Controller, ma in un altro livello (ad esempio Facciata) quindi ho 2 opzioni
- Passa ogni valore richiesto al metodo facciata di
request.getSession().getAttribute( "name" )
. - Crea un metodo in ogni classe di facciata come.
Metodo in facciata
private Object getSessionValue(final String key) {
ServletRequestAttributes reqAttr = (ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes();
return reqAttr.getRequest().getAttribute(key);
}
Sebbene entrambi funzionino nel mio caso, ma con una eccezione, ho bisogno di avere questo metodo su ogni Facade Class o di recuperare ogni oggetto in Controller.
C'è qualche altro modo o approccio che potrebbe essere più pulito o il mio approccio attuale va bene