2015-02-20 14 views
5

Diciamo che ho un controller Spring.Autowiring HttpServletRequest in Spring controller

@RequestMappin("/path") 
public MyController { 
} 

Come specificato, l'ambito predefinito del controller è Singleton. So che posso autowire richiesta in grani portata richiesta, tuttavia, se provo a autowire richiesta, in modo che

@RequestMappin("/path") 
public MyController { 
     @Autowired 
     private HttpServletRequest request; 
    } 

Funziona ancora, e per ogni richiesta ho oggetto di richiesta appropriata. Significa che autowire funziona indipendentemente dal fatto che lo scope sia o meno una richiesta?

+0

Questa richiesta è sicura? Voglio dire se ci sono attributi in questa richiesta, il valore dell'attributo è unico? – user1438980

risposta

4

se funziona significa che la molla non inserisce esattamente la richiesta http ma un proxy. il proxy delega le chiamate alla richiesta HTTP corrente

+1

Quindi, questo comportamento predefinito o con Reques scope beaning inietta direttamente la richiesta? –

+0

non lo so. ma in realtà non dovrebbe importare - il tuo programma non dovrebbe fare affidamento su questo – piotrek

1

È possibile ottenere l'oggetto HttpServletRequest in ciascun metodo di servizio Web. Ad esempio:

@RequestMapping("/method") 
public void method(HttpServletRequest req) { 
    // ... 
} 
Problemi correlati