endsharp / study

1 stars 0 forks source link

빈 후처리기 #28

Open cme10575 opened 1 year ago

cme10575 commented 1 year ago

빈 후처리기 (BeanPostProcessor)

엄청 많은 빈이 등록되기 때문에 패키지로 프록시로 감쌀 빈을 제한해야한다. 포인트컷을 사용하면 더 효율적일 것 스프링 AOP는 포인트컷을 사용해 프록시 대상 여부 체크

스프링이 제공하는 빈 후처리기

AutoProxyCreator (AnnotationAwareAspectJAutoProxyCreator)

포인트컷의 사용처

  1. 프록시 적용 어부 판단 - 생성 단계
  2. 어드바이스 적용 여부 판단 - 사용 단계

AspectJExpressionPointcut

LeeeeDain commented 1 year ago

세션 8. 빈 후처리기

빈 후처리기

빈 후처리기 사용방법

로그 찍는 빈 후처리기 예제

스프링이 제공하는 빈 후처리기

포인트컷 사용처

  1. 프록시 적용 여부를 판단할 때 - 생성 단계
    • 클래스 + 메서드 조건을 모두 비교한다. 이 때 메서드 하나라도 맞는게 있으면 프록시를 생성한다.
      • ex) AController에는 request(), noLog() 메서드가 있는데 여기서 reqeust()가 포인트컷 조건에 만족하므로 `AController는 프록시를 생성한다.
  2. 어드바이스 적용 여부를 판단할 때 - 사용 단계
    • 프록시가 호출되었을 때 프록시 내부에서 부가 기능인 어드바이스를 적용할지 포인트컷을 보고 판단한다.
      • ex) AController에서 request() 메서드는 포인트컷 조건에 만족하므로 프록시는 어드바이스를 먼저 호출하고, target을 호출한다. AController에서 noLog() 메서드는 포인트컷 조건에 만족하지 않으므로 프록시는 어드바이스를 호출하지 않고, target만 호출한다.

AspectJExpressionPointcut

LeeeeDain commented 1 year ago

스프링에서도(스프링부트x) aspectj를 사용해 aop를 어노테이션으로 설정 가능하다. 참고: https://heidi-mood.com/80