강의

멘토링

커뮤니티

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

grlee1님의 프로필 이미지
grlee1

작성한 질문수

스프링 핵심 원리 - 고급편

@Aspect 프록시 - 적용

LogTraceAspect 에 @Component 애노테이션을 붙여서 스프링 빈 등록하기

해결된 질문

작성

·

407

0

LogTraceAspect 에 @Component 애노테이션을 붙여서 스프링 빈 등록을 해도 된다고 하셔서 해봤는데 로그가 안나오더라구요ㅠㅠ 

LogTraceAspect.java -> @Aspect와 @Component 추가

AopConfig.java -> 사용 x

ProxyApplication.java -> @Import({AppV1Config.class, AppV2Config.class})

@SpringBootApplication(scanBasePackages = "hello.proxy.app")

이렇게 하고 실행했는데 작동 자체는 잘 되지만 로그가 찍히지 않습니다

제가 뭘 잘못했을까요??

답변 1

1

안녕하세요. grlee1님, 공식 서포터즈 y2gcoder입니다.

@Component 로 등록했을 때는 스프링 부트 프로젝트는 기본적으로 @SpringBootApplication 에 포함되어있는 @ComponentScan을 통해 스프링 빈으로 등록합니다. 
근데 저희 프로젝트에서는 scanBasePackages 옵션을 통해 hello.proxy.app 패키지 내부에 있는 @Component들만 스프링 빈으로 등록하도록 @ComponentScan 범위를 제한해놨습니다. 
강의를 잘 따라오셨다면 LogTraceAspect.java 는 hello.proxy.app 안에 있지 않고 

hello.proxy.config.v6_aop.aspect 

안에 있을 것으로 보입니다. 그러면 @ComponentScan 의 범위에 벗어난 곳에 생성되어있기 때문에 스프링 빈으로 등록되지 않았고, 그래서 정상적으로 동작하지 않은 것으로 보입니다! 

한번 hello.proxy.app 패키지 안에 임의로 생성하고 테스트해보시겠습니까?

감사합니다.

grlee1님의 프로필 이미지
grlee1

작성한 질문수

질문하기