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

이건우님의 프로필 이미지

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

트랜잭션 AOP 주의 사항 - 프록시 내부 호출1

프록시 호출

작성

·

138

0

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

[질문 내용]

static class CallService{

    public void external() {
        log.info("call external");
        printTxInfo();
        internal();
    }

    @Transactional
    public void internal() {
        log.info("call internal");
        printTxInfo();
    }
}

위 코드에서 교안의 그림과 설명에서 callService.external()을 호출할 때, 트랜잭션 프록시로부터 먼저 호출된다고 되어있는데 external()메서드는 @Transactional이 적용되어 있지 않음에도 프록시로 호출되는 이유는 같은 클래스 레벨인 internal()메서드에 @Transactional이 선언되어 있어서 CallService클래스 자체가 프록시로 생성되기때문인가요?
옳바르게 이해한지 확인하고싶어 질문드립니다ㅠㅠ

답변 1

0

안녕하세요. 이건우님, 공식 서포터즈 y2gcoder입니다.

image

이 그림을 보고 말씀하신 것으로 보입니다.

말씀하신 것이 맞습니다 🙂

 

감사합니다.