Class RequestContextHolder

java.lang.Object
com.easydesk.context.RequestContextHolder

public class RequestContextHolder extends Object
ThreadLocal을 통해 스레드별 Context를 보관하는 Holder
Author:
YounghoCho
  • Constructor Details

    • RequestContextHolder

      public RequestContextHolder()
  • Method Details

    • setContext

      public static void setContext(RequestContext context)
      Parameters:
      context -
    • getContext

      public static RequestContext getContext()
      Returns:
      requestContext
    • clear

      public static void clear()
      ★ 매우 중요: 스레드 풀 재사용으로 인한 데이터 오염 방지를 위해 반드시 clear 해야 함
    • runWith

      public static void runWith(RequestContext context, RequestContextHolder.ContextTask task) throws Exception
      주어진 context 로 잠시 교체한 상태에서 task 를 실행하고, 끝나면(예외가 발생해도) 원래 context 로 복원한다.

      요청 처리 도중 새로 생성된 정보(예: 방금 insert 된 ItemType 의 id)를 이후 Workflow 에 전달해야 할 때 사용한다. Holder 를 교체한 채로 두면 같은 요청 안에서 이후에 실행되는 코드까지 바뀐 context 를 보게 되므로, 반드시 이 메서드로 범위를 한정해서 교체한다.

      Parameters:
      context - 임시로 사용할 context
      task - 실행할 작업
      Throws:
      Exception - task 에서 발생한 예외