2014-08-30 13 views
13

Qual è l'ambito predefinito di una molla @Service?Ambito predefinito servizio Spring

È ragionevole per la progettazione di un'implementazione Servizio al fine di memorizzare alcune informazioni, relative al l'utente connesso corrente (in base alla corrente sessione HTTP), attraverso attributi di classe (anche utilizzando il modificatore final)?

risposta

20

Qual è lo scopo predefinito di Spring 4 @Service?

L'ambito predefinito è Singleton

È ragionevole per la progettazione di un'implementazione di servizio al fine di memorizzare alcune informazioni, relative al l'utente connesso corrente (in base alla sessione HTTP corrente)

Sì. In tal caso, il servizio dovrà avere l'ambito "sessione". Vedi http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-scopes-other

+0

Pertanto, dovrei annotare il servizio come '@Scope (" sessione ")', giusto? – vdenotaris

+1

Si consiglia di usare '@Scope (valore = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)' o '@Scope (valore = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.INTERFACES)' a seconda della modalità proxy preferita, in modo che il il bean di sessione può essere iniettato ovunque. –

+1

Ciao, puoi dirmi quale era lo scope di default per Spring 3 @service? Sto riscontrando un problema con diverse sessioni utente che mostrano gli stessi valori. –

Problemi correlati