6:58초에서 log로 왜 proxy가 찍히는건지 잘 모르겠습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
잘 이해가 안되어 질문 남깁니다.
test에 있는 itemRepository는 bean으로 Config 파일을 통해서 주입시킨 JpaRepository 객체가 autowired 통해서 들어왔는데, 왜 프록시 객체가 로그로 찍히나요?
repository의 프록시는 서비스 레이어 넘기기 전, 예외 변경기능만 하는 것 아닌가요? itemRepository에 주입된 객체가 왜 repository의 프록시 객체인지가 궁금합니다.. save()같은 repository안의 메서드에서 예외가 발생하여 service로 넘어갈때 프록시 객체가 적용되어야 하는것 아닌가요?
헷갈려서 질문남깁니다..
감사합니다.
답변 1
1
안녕하세요, :/ 님. 공식 서포터즈 y2gcoder 입니다.
먼저 @SpringBootTest 는 실제 애플리케이션을 구동할 때와 마찬가지로 모든 빈을 가져와서 테스트합니다.
그때 @Configuration, @Bean으로 주입하는 ItemRepository도 빈으로 등록하게 되는데, 이 때 ItemRepository에 @Repository가 붙어있다면 스프링 부트에 있는 예외 변환 AOP를 통해 프록시가 빈으로 등록됩니다. 그래서 이미 ItemRepositoryTest에서 @Autowired로 불러온 ItemRepository 빈 객체가 프록시 객체인 것으로 이해해주시면 감사하겠습니다.
실제로 @ComponentScan 뿐만 아니라 @Configuration + @Bean도 빈 등록시 빈 후처리기를 통해 빈 객체를 변환 후 저장할 수 있습니다. 이는 스프링 핵심원리 고급편의 빈 후처리기 챕터를 참고해주십시오!
감사합니다.
설정 정보 없이 임베디드 데이터베이스 생성
0
15
1
RepositoryTest의 패키지 위치가 domain인 이유
0
38
2
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
0
32
1
update()에 사용하는 setter 질문드립니다.
0
49
1
SQL 중심적 개발의 문제점에 대한 질문
0
78
1
혹시 Containing 을 안쓰신 이유가 있을까요?
0
89
2
[공유] 스프링부트 4.x 버전 mybatis 연동
0
184
1
@repository 어노테이션
0
94
3
ItemService
0
59
1
논리 커밋, 물리 커밋 질문드립니다.
0
54
1
내부 트랜잭션 커밋은 필수인가요?
0
57
1
프록시 커넥션 객체를 반환할 때 생성하는건가요?
0
55
1
Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)
2
180
2
JPQL 대신 네이티브 쿼리를 사용해야 하는 경우
0
81
1
@EventListener(ApplicationReadyEvent.class) 관련
0
90
1
트랜잭션 동기화 매니저와 데이터 소스
0
77
1
DB 관련 강의 개설 계획은 없으신건가요?
0
133
2
물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요
0
96
1
스프링 3 버전 이상 rollbackFor 변경된듯요
1
114
1
트랜잭션 전파 질문.
0
87
1
프로젝트 오픈 에러
0
126
1
외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다
0
84
2
같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환
0
74
1
h2 인메모리 테스트중 예약어 충돌날 경우 대처방법
0
105
1





