2016-03-23 1 views
0

Один из моих классов занимается HttpServletRequest и является компонентом, как это:Java весна @component сфера и HttpServletRequest

@Component 
public class AuthorizationService { 

    @Autowired 
    HttpServletRequest request; 

    public Boolean authorize(Integer fetId) { 
     ...play with headers, db and other stuff... 
    } 

и используется где-то еще, как этот

public class CarRestController { 
    @Autowired 
    CarService service; 
    @Autowired 
    AuthorizationService authorizer; 

    @RequestMapping(method = RequestMethod.GET) 
    public List<Car> get()throws Exception { 
     authorizer.authorize(666); 
     ... 
     return cars; 
    } 

Меня беспокоит то, что с AuthorizationService является @компонентом, по умолчанию он будет синглом, поэтому может быть только один запрос, который будет заменен новыми, поступающими по мере их обработки.

Должен ли я сделать это, чтобы решить проблему?

@Component 
@Scope("prototype") 
public class AuthorizationService { 

Большое спасибо

+0

Зачем автоустанавливать его, что не так с передачей его методу? –

ответ

0

Spring заботится запрос контекстного объекта как HttpServletRequest автоматически. Удалите @Scope, и все должно быть в порядке.