从 Spring Boot 应用程序的服务层中的请求中获取标头
2022-09-03 17:27:34
在春季启动中,有没有办法在任何应用程序点从请求中获取标头?一些静态的东西会很棒。
请注意,这对我不起作用,因为我在服务层上需要这个值。@RequestHeader
在春季启动中,有没有办法在任何应用程序点从请求中获取标头?一些静态的东西会很棒。
请注意,这对我不起作用,因为我在服务层上需要这个值。@RequestHeader
您可以在服务层中注入对象,如下所示:HttpServletRequest
@Autowired
HttpServletRequest request;
private void method() {
request.getHeader("headerName");
}
但请记住,该bean具有HTTP请求范围。因此,您无法将其注入异步方法等,因为它将.HttpServletRequest
throw Runtime Exception
希望它有帮助。
我之前搜索过同样的问题,我发现你可以在RestController方法中使用标头参数,就像你说的那样@RequestHeader。那么为什么不将它们定向到您的服务层方法中:
@Autowired
ServiceLayerObj serviceLayerObj;
...
@RequestMapping
public YourReturnObj someRestServiceMethod(
@RequestBody SomeObj body,
@RequestHeader(value = "username") String username
){
return serviceLayerObj.yourServiceLayerMethod(body,username);
}