프록시 객체 생성은 @Transactional 메소드 단위인가요?
프록시에 대해서 잘 모르는 상태로 질문드립니다.
앞으로 다른 강의에서 나올 수 있는 내용이지만, 일단 큰 그림을 잡을 수 있게 간단하게 질문드립니다.
이번 강의에서 메소드에 @Transactional을 붙이면 프록시 객체가 만들어진다고 배웠습니다.
그렇다면 @Transactional가 붙어있는 메소드 단위로 프록시 객체가 만들어지는 건지, 아니면 Service 클래스 단위로 프록시 객체가 만들어지는 건지 궁금합니다.
예를 들어, Service 클래스에 3개의 메소드가 있다고 가정했을 때, @Transactional 메소드가 2개, 일반 메소드가 1개 있다면, 프록시 객체는 2개가 만들어지는 건가요? 아니면 한 개의 프록시 객체에 두 개의 메소드가 등록되는 건가요?
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
@Transactional이 붙어 있는 메소드 단위로 프록시 객체가 만들어지는 것이 아니라, 스프링 프레임워크에서는 보통 클래스 단위로 프록시 객체를 생성합니다. 예를 들어 Service 클래스에 @Transactional이 붙은 메소드가 여러 개 있더라도, 프록시 객체는 한 개만 만들어지고 해당 프록시 객체 안에서 트랜잭션이 필요한 메소드들을 관리합니다. 따라서 Service 클래스에 @Transactional 메소드가 2개, 일반 메소드가 1개 있을 경우에도 프록시 객체는 한 개만 생성되며, 트랜잭션이 필요한 메소드에서만 트랜잭션 관련 프록시 동작이 수행됩니다.
9번 강의 save 메서드 질문
0
62
1
트랙잭션 격리수준 선택에 대해서 질문
0
90
1
spring initialiser 어떤걸 선택해야될지 모르겠어요
0
120
2
트랜잭션 템플릿이 체크예외는 커밋하는 이유가 궁금합니다.
0
120
1
jdbc 학습하다 궁금해서 질문드려요
0
161
1
정상이체와 이체중 예외발생 차이
0
130
2
이번 강의부터가 JDBC 직접 사용 맞나요?
0
138
1
순수한 서비스 계층에 대한 의문???
0
130
2
3_4test, 4test 자동 리소스 안됨
0
111
2
데이터베이스 선택 관련 질문.
0
120
2
after 메서드 사용 유무
0
118
2
데이터베이스 접근 및 DB 락
0
112
1
@SpingBootTest, @TestConfiguration
0
109
1
Read Committed 격리 수준 사용 관련 질문
0
114
1
AopCheck Test 부분의 EnhancerBySpring 확인 법??
0
126
2
커리큘럼 관련 질문
0
123
1
서비서 계층 스프링 프레임워크 사용
0
142
1
validation(toMember)의 위치
0
137
2
데이터 계층에서 서비스 로직의 datasource를 인식하는 방법
0
227
2
member 상수 질문
0
188
2
ctrl + F6 이후로 con 인식이 안 됩니다
0
224
2
DrivenManager 와 Connection 반환에 대한 질문입니다!
0
144
1
섹션5 트랜잭션 템플릿관련 질문(이기종 DB)
0
166
1
세션1 테이블 조회결과 그림은 Redo 로그에 속하나요?
0
142
1





