Package com.easydesk.context
Class RequestContextHolder
java.lang.Object
com.easydesk.context.RequestContextHolder
ThreadLocal을 통해 스레드별 Context를 보관하는 Holder
- Author:
- YounghoCho
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidclear()★ 매우 중요: 스레드 풀 재사용으로 인한 데이터 오염 방지를 위해 반드시 clear 해야 함static RequestContextstatic voidrunWith(RequestContext context, RequestContextHolder.ContextTask task) 주어진 context 로 잠시 교체한 상태에서 task 를 실행하고, 끝나면(예외가 발생해도) 원래 context 로 복원한다.static voidsetContext(RequestContext context)
-
Constructor Details
-
RequestContextHolder
public RequestContextHolder()
-
-
Method Details
-
setContext
- Parameters:
context-
-
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- 임시로 사용할 contexttask- 실행할 작업- Throws:
Exception- task 에서 발생한 예외
-