• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

22.04.24 16:32 작성 조회수 259

0

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

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

AopConfig.java -> 사용 x

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

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

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

제가 뭘 잘못했을까요??

답변 1

답변을 작성해보세요.

1

y2gcoder님의 프로필

y2gcoder

2022.04.24

안녕하세요. 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 패키지 안에 임의로 생성하고 테스트해보시겠습니까?

감사합니다.