programing

Spring Boot 애플리케이션의 서비스 계층에 있는 요청에서 헤더 가져오기

powerit 2023. 6. 27. 22:37
반응형

Spring Boot 애플리케이션의 서비스 계층에 있는 요청에서 헤더 가져오기

스프링 부트에서 응용 프로그램의 모든 지점에서 요청으로부터 헤더를 가져올 수 있는 방법이 있습니까?정적인 것들이 좋을 것입니다.

알아두시기 바랍니다.@RequestHeader서비스 계층에 이 값이 필요하기 때문에 사용할 수 없습니다.

주입할 수 있습니다.HttpServletRequest다음과 같은 서비스 계층의 개체:

@Autowired
HttpServletRequest request;

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

하지만 기억해, 그 콩은HttpServletRequestHTTP 요청 범위가 있습니다.따라서 비동기식 방법 등에 주입할 수 없습니다. 왜냐하면,throw Runtime Exception.

도움이 되길 바랍니다.

전에 같은 질문을 검색하고 있었는데, RestController 메서드에서 @Request로 헤더 매개 변수를 사용할 수 있다는 것을 알게 되었습니다.말씀하신 대로 헤더.따라서 서비스 계층 방식으로 전환하는 것이 어떻습니까?

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

언급URL : https://stackoverflow.com/questions/46713014/get-header-from-request-in-service-layer-of-spring-boot-application

반응형