2015-02-20 9 views
5

Предположим, у меня есть контроллер Spring.Autowiring HttpServletRequest в контроллере весны

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

Как указано, основной объем контроллера по умолчанию - Singleton. Я знаю, что я могу autowire запроса в области запроса фасоли, однако, если я пытаюсь autowire запроса, так что

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

Он по-прежнему работает, и для каждого запроса я получаю соответствующий объект запроса. Означает ли это, что autwire работает независимо от области запроса или нет?

+0

Этот запрос является потокобезопасным? Я имею в виду, если в этом запросе есть атрибуты, значение атрибута уникально? – user1438980

ответ

4

Если это работает, значит, весна не вводит точно HTTP-запрос, а прокси-сервер. прокси делегирует вызовы на текущий http-запрос

+1

Итак, это поведение по умолчанию, или с помощью боковых областей Reques, которые он запрашивает напрямую? –

+0

Я не знаю. но это действительно не имеет значения - ваша программа не должна полагаться на это – piotrek

1

Вы можете получить объект HttpServletRequest в каждом методе webservice. Такие как:

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