有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    我之前搜索过同一个问题,我发现您可以在RestController方法中使用头参数,如您所说的@RequestHeader。那么,为什么不将它们引导到您的服务层方法中呢:

    @Autowired
    ServiceLayerObj serviceLayerObj;
    ...
    @RequestMapping
    public YourReturnObj someRestServiceMethod(
        @RequestBody SomeObj body,
        @RequestHeader(value = "username") String username
    ){
        return serviceLayerObj.yourServiceLayerMethod(body,username);
    }
    
  2. # 2 楼答案

    您可以在服务层中注入HttpServletRequest对象,如下所示:

    @Autowired
    HttpServletRequest request;
    
    private void method() {
      request.getHeader("headerName");
    }
    

    但是请记住,beanHttpServletRequest具有HTTP请求范围。因此,不能将其注入异步方法等,因为它将throw Runtime Exception

    希望能有帮助