인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

박주형님의 프로필 이미지

작성한 질문수

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

@Configuration과 @Transactional

작성

·

35

0

안녕하세요 항상 강의를 잘 보고 있습니다.

@Configuration과 @Transactional 둘 다 상속을 이용한 proxy기법(CGLIB, AOP)을 사용하는 것으로 확인하였습니다.

만약 저가 MemberService라는 class에 @Service, @Transactional를 부여한 후 ComponentScan을 하면 MemberService의 프록시 객체가 빈으로써 생성되어 스프링 컨테이너에 반환되는 것을 확인하였는데 궁금한 것은 @Configuration과 @Transactional 이 둘이 각각 프록시를 생성하는 것인지 혹은 하나만 생성하는 것인지가 궁금합니다.
두 번째로 궁금한 것은 프록시는 싱글톤으로 관리가 될 텐데, 프록시가 아닌 target이 가르키는 실제 객체 MemberService는 매 request마다 객체가 새로 생성되어지는 것인지 혹은 최초로 서버가 로드할 때 한 번만 생성이 되는 것인지 궁금합니다. (제 생각에는 @Configuration으로 인하여 후자이지 않을까 생각합니다.)

답변 1

0

David님의 프로필 이미지

안녕하세요. 박주형님, 공식 서포터즈 David입니다.

  1. @Configuration이 붙은 설정 클래스의 프록시, @Transactional이 붙은 서비스의 프록시가 각각 생성됩니다.

  2. 프록시가 가리키는 싱글톤 빈은 한 번만 생성되어 집니다.

감사합니다.