본문 바로가기
IT/Java

aop pointcut 정리(추가 정리)

by 성준하이 2023. 5. 15.
반응형

이전 포스팅에 이어 좀더 심화 정리를 추가하려고 한다.

 

1. 여러개의 execution 정의

-> 표현식을 사용한다.

and 는 && , or 는 || 등을 사용하여 

@Before("execution(* com..*.*(..)) && @annotation(org.apache.ibatis.annotations.Mapper)")

이와 같이 정의해준다.

 

2. 호출된 메서드에 대한 정보

->

System.out.println("location Name :" + jp.getTarget().getClass().getName());

System.out.println("method Name :" + jp.getSignature().getName());

System.out.println("uri Name :" + request.getRequestURI());

이와 같이 사용을 하면 joinpoint 와 object return 에 대한 정보를 얻을 수 있다.

 

3. 메서드가 실행 되면서 호출된 모든 메서드 리스트 출력

-> 이부분은 자바와 aop 의 응용이지만 정리를 위해 적어둔다.

    private List<String> methodList = new ArrayList<>();


    @Before("execution(* com.example.*.*(..))")
    public void beforeMethodExecution(JoinPoint joinPoint) {
        String methodName = joinPoint.getSignature().getName();
        methodList.add(methodName);
    }


    @AfterReturning("execution(* com.example.*.*(..))")
    public void afterMethodExecution() {
        // 트랜잭션 종료 시점에서 호출된 모든 메서드 리스트 출력 또는 다른 작업 수행
        for (String methodName : methodList) {
            System.out.println("Called method: " + methodName);
        }
        methodList.clear();
    }
반응형

'IT > Java' 카테고리의 다른 글

mybatis 에서 dto camel case 적용  (59) 2023.05.29
@Data annotation 과 getter 의 관계(23.05.24)  (30) 2023.05.25
aop pointcut 정리  (24) 2023.05.14
springboot AOP 설정하기  (35) 2023.05.13
[Map]getOrDefault 사용법 및 예제  (25) 2023.05.12

댓글