인프런 커뮤니티 질문&답변

SeoArc님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 고급편

쓰레드 로컬 동기화 - 적용

LogTrace Prototype Bean으로 설정 시

해결된 질문

작성

·

612

·

수정됨

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요! LocalThread 수강 중 궁금증이 생겨 질문드립니다.

다음과 같이 LogTrace를 Prototype Bean으로 등록 후 컨트롤러에서 주입받아 사용하는 상황은 Thread safe 하다고 말할 수 있는지 궁금합니다

package hello.advanced.app.v3;

import hello.advanced.trace.TraceStatus;
import hello.advanced.trace.hellotrace.HelloTraceV2;
import hello.advanced.trace.logtrace.LogTrace;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
public class OrderControllerV3 {

    private final OrderServiceV3 orderService;
    private final ObjectProvider<LogTrace> provider;

    @GetMapping("/v3/request")
    public String request(String itemId) {
        TraceStatus status = null;
        LogTrace trace = provider.getObject();
        try {
            status = trace.begin("OrderController.request()");
            orderService.orderItem(trace, itemId);
            trace.end(status);
            return "ok";
        } catch (Exception e) {
            trace.exception(status, e);
            throw e;
        }
    }
}

 

만약 그렇다면, ThreadLocal을 통해 할당하고 접근하는 것과 어떤 차이가 있는지 궁금합니다.

프로토타입 빈에 대한 이해가 부족한 것 같아 터무니없는 질문일 수 있지만, 잘 이해가 가지않아 질문드립니다

답변 2

0

안녕하세요. SeoArc님, 공식 서포터즈 OMG입니다.
강의 수강 중 궁금한 사항은 언제든 질문 남겨주세요 ^^
감사합니다.

0

SeoArc님의 프로필 이미지
SeoArc
질문자

아 이러면 계속 필드에서 객체를 생성해서 넘겨주는 것과 차이가 없는데 너무 해멘거같네요,,

SeoArc님의 프로필 이미지

작성한 질문수

질문하기