inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

이번 예제에서 Config 클래스에 @Configuration 을 적용하니, Proxy 래핑/등록이 안되는것 같습니다.

해결됨

스프링 핵심 원리 - 고급편

강사님 안녕하세요. 저는 지금 예제 구현시 의도와 다르게 약간 틀린 설정으로 생긴 예상밖의 결과로 약간 혼동을 겪고있습니다. 이유는 @Configuration 을 실수로 붙였더니, 아래와 같이 Proxy 가 적용되지 않은 결과가 나옵니다. Config 클래스에 아래와 같이 @Configuration 선언시 @Configuration static class Config { ... ... } child . childMethod () ; 실행 후 로그 메세지 : child Proxy=class ...AtTargetAtWithinTest $Child (Proxy 적용이 안된 스프링 빈 출력) child . parentMethod () ; Parent 는 프록시 처리가 되지 않아 출력되지 않음 관례처럼 사용해오던 @Configuration 을 지우니 강의 예제결과처럼 정상으로 나옵니다. (@Import 를 통해 Config 추가 상태) Aspect 를 빈으로 등록해도 Proxy 변환이 안되는 이 상황이 이해가 되지 않아 부득이하게 질문을 남기게 되었습니다. 질문입니다. 예전 강의에서 @Configuration 은 등록되는 빈 을 대상으로 싱글톤 후처리 를 위해 선언되는 것이라 알고있었습니다.( CGLIB 을 통해 프록시 후처리), 그래서 Aspect 가 당연히 적용될 줄 알았는데 @Configuration 을 붙이니,Proxy 처리가 되지 않더라구요. 아래는 두가지 결과 입니다. @Configration Config @Import(Config.class) @Configuration 선언 시, Proxy 후처리가 되지 않는 기묘한 현상에 대한 이해가 잘 되지 않습니다. 이런 이유로 Config 클래스에 @Configuration 을 쓰지않고, @Import 로 추가하신 이유가 궁금합니다. 읽어주셔서 감사드립니다.

  • @Configuration
  • 디자인-패턴
  • @Import
  • aop
  • spring
  • proxy
  • aspect
  • 프록시생성불가
  • @TestConfiguration
  • @EnableAspectJ
  • @AutoProxy
Truestar 댓글 4 좋아요 0 조회수 1156

인기 태그

인프런 TOP Writers

주간 인기글