여러 레이어, 서비스 및 구성 요소가있는 거대한 모노 리체를 인수해야했습니다.디자인 실패, MDC 악용
내가 코드를 살펴 보았을 때 가장 먼저 깨닫는 건 MDC입니다.
일부 예 :
public void setContextOrderId(String orderId) {
MDC.put("orderId", orderId);
}
또는
String sessionId = MDC.get("sessionId");
MDC
는 응용 프로그램에서 정적의 HashMap으로 사용, 나는 동기 MDC가 가로 질러 요청에 따라 사용할 수 있다는 사실에 기인 믿습니다 요청 파이프 라인 및 저장소로 사용되었습니다.대체 방법은 무엇입니까? thread safe container에 대한 대안이 있습니까?
감사합니다.
왜 MDC가 저장 장치로 사용되는지 왜 저를 괴롭 힙니다. MDC에서 데이터의 모든 비트를 놓고 읽습니다. – DarthVader