Pointcut

핵심 기능과 부가 기능 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다. 핵심 기능이라 함은 객체가 가지고 있는 비즈니스로직으로 볼 수 있다. 만약 계산을 해주는 Calculator 라는 객체가 있다고 가정하면, Calcualtor의 핵심 기능은 사칙연산 등을 의미한다. 부가 기능은 핵심 기능을 보조하기 위한 기능이다. 단독으로 사용되지 않으며 핵심기능과 함께 사용된다. 예를 들면 메소드 실행 속도를 나타내는 로그, 트랜잭션 기능, 보안 기능 등등이 된다. 핵심 기능에 부가 기능을 추가해보자 @Slf4j public class Calcualtor { public int add(int x, int y) { // 핵심 기능 return x + y; } public int sub(int x,..
2022.10.11 - [프로그래밍 노트/SPRING] - [Spring] 빈 후처리기 (feat. proxy, advisor) Advisor를 bean으로 등록하면, AnnotationAwaareAspectJAutoProxyCreator 빈 후처리기가 Advisor 에 지정된 pointcut 기반으로 proxy를 만들어 줬다. Advisor 를 bean 으로 등록하기 위해 어드바이저를 직접 만들었는데, 스프링은 @Aspect 애노테이션으로 매우 편리하게 어드바이저(포인트 컷 + 어드바이스)생성 기능을 지원한다. Advisor 를 직접 생성하여 bean 으로 등록 @Bean public Advisor advisor() { AspectJExpressionPointcut pointcut = new Aspec..
2022.09.28 - [프로그래밍 노트/SPRING] - [Spring] 프록시팩토리_1 (feat. Advice) 2018.07.01 - [프로그래밍 노트/SPRING] - [Spring] Spring AOP(Aspect Oriented Programming)1 AOP 하면 빠질 수 없는 용어들이 있다. 블로그를 찾아보니 2018년도에 AOP 관련 용어를 정리한 글이 존재하는데… 프록시 팩토리에서 찍먹으로 사용되니 몇 개만 속성으로 알아보자 포인트 컷(Pointcut) 어떤 포인트(Point)에 기능을 적용할지 하지 않을지 잘라서(cut) 구분하는 것 어디에 부가기능(Advice)을 적용할지 판단하는 필터링 로직 어드바이스(Advice) 실제로 기능을 구현한 객체 프록시가 호출하는 부가 기능 어드바이..
애노테이션 기반의 스프링 @AOP 의존성 추가 org.springframework.boot spring-boot-starter-aop 애스팩트 정의 @Aspect 빈으로 등록해야 하니까(컴포넌트 스캔을 사용한다면) @Component도 추가. 포인트컷 정의 @Pointcut(표현식) 주요 표현식 execution @annotation bean 포인트컷 조합 &&, ||, ! @Aspect @Component public class PerfAspect { // Advice + Pointcut @Around("execution(* com.corn..*.EventService.*(..))") public Object logPerf(ProceedingJoinPoint pjp) throws Throwable { ..
깡냉쓰
'Pointcut' 태그의 글 목록