Spring : 요청 범위 빈에 HttpServletRequest를 어떻게 주입합니까?
Spring에서 요청 범위 빈 을 설정하려고합니다 .
요청 당 한 번 빈이 생성되도록 성공적으로 설정했습니다. 이제 HttpServletRequest 객체에 액세스해야합니다.
빈은 요청 당 한 번 생성되기 때문에 컨테이너가 내 빈에 요청 객체를 쉽게 주입 할 수 있다고 생각합니다. 어떻게 할 수 있습니까?
요청 범위 빈은 요청 객체와 자동 연결될 수 있습니다.
private @Autowired HttpServletRequest request;
Spring 은 유형 의 래퍼 객체를 통해 현재 HttpServletRequest
객체 ( 현재 객체뿐만 아니라)를 노출합니다 . 이 래퍼 객체는 ThreadLocal에 바인딩되며 메서드 를 호출하여 얻습니다 .HttpSession
ServletRequestAttributes
static
RequestContextHolder.currentRequestAttributes()
ServletRequestAttributes
방법을 제공하고 getRequest()
, 현재 요청을 얻기 위해 getSession()
모두 범위에 저장된 속성을 얻을 수있는 현재 세션과 다른 방법을 얻을 수 있습니다. 다음 코드는 약간 못 생겼지 만 응용 프로그램의 모든 위치에서 현재 요청 객체를 가져옵니다.
HttpServletRequest curRequest =
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
.getRequest();
있습니다 RequestContextHolder.currentRequestAttributes()
방법은 인터페이스 및 요구 사항을 반환에 typecasted 할 ServletRequestAttributes
것을 구현 인터페이스를.
Spring Javadoc : RequestContextHolder | ServletRequestAttributes
여기에서 제안한 HttpServletRequest
대로 as a method param을 삽입 할 수도 있습니다 . 예 :
public MyResponseObject myApiMethod(HttpServletRequest request, ...) {
...
}
'development' 카테고리의 다른 글
함수가있는 JavaScript 삼항 연산자 예제 (0) | 2020.09.02 |
---|---|
Mac OS X의 Vim 삽입 모드 (0) | 2020.09.02 |
이미지 변경을위한 열거 형 데이터 트리거 (0) | 2020.09.02 |
express.js-한 줄의 여러 경로에 대한 단일 라우팅 처리기 (0) | 2020.09.02 |
변수가 존재하는지 여부를 모르는 경우 정의되지 않은 변수와 비교하는 방법은 무엇입니까? (0) | 2020.09.02 |