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

H K님의 프로필 이미지
H K

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

트랜잭션 문제 해결 - 트랜잭션 AOP 적용

.getClass() -> 프록시 객체

작성

·

392

1

16:06 질문입니다.

void AopCheck() {
    log.info("memberService class={}", memberService.getClass());

이 부분은 프록시가 나오는걸 이해했는데

 

빈으로등록한 이부분

@Bean
MemberServiceV3_3 memberServiceV3_3(){
    return new MemberServiceV3_3(memberRepositoryV3());
}

이것은 왜 프록시가 아닌 본 객체가 출력되나요 ?

답변 2

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. H K님

74 라인은 원래 객체인 것이 맞습니다.

이것을 반환하고 나서 이후에 스프링이 프록시를 만들게 됩니다.

감사합니다.

H K님의 프로필 이미지
H K
질문자

감사합니다 ㅎ

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. H K님

질문이 정확히 이해가 되지 않아서요.

코드로 풀어서 조금 더 자세히 질문해주시겠어요?

H K님의 프로필 이미지
H K
질문자

image

image

82라인은 프록시 객체가 나오는거확인했습니다.
그런데 보시다시피 71 라인에서 memberService가 처음에 빈으로 주입됩니다.
그래서 74라인에서 로그를 찍어보았는데 프록시객체가 아닌 원래 객체가 주입됩니다.
그렇다는것은 처음엔 원래의 객체가 주입이 됐는데 82 라인에서 memberService 객체가 프록시 객체로 변환된건가요 ?

H K님의 프로필 이미지
H K

작성한 질문수

질문하기