AOP 포인트컷 - bean

박찬우·2024년 2월 17일

스프링

목록 보기
72/88

bean

  • 스프링 전용 포인트컷 지시자, 빈의 이름으로 지정한다
  • 스프링 빈의 이름으로 AOP 적용 여부를 지정한다. 이것은 스프링에서만 사용할 수 있는 특별한 지시자이다.
  • bean(orderService) || bean(*Repository)
  • * 과 같은 패턴을 사용할 수 있다

예)

@Slf4j
@Import(BeanTest.BeanAspect.class)
@SpringBootTest
public class BeanTest {

    @Autowired
    OrderService orderService;

    @Test
    void success() {
        orderService.orderItem("itemA");
    }

    @Aspect
    static class BeanAspect {
        @Around("bean(orderService) || bean(*Repository)")
        public Object doLog(ProceedingJoinPoint joinPoint) throws Throwable {
            log.info("[bean] {}", joinPoint.getSignature());
            return joinPoint.proceed();
        }
    }
}

profile
진짜 개발자가 되어보자

0개의 댓글