본문 바로가기

개발일기/Spring

[Spring] Aop예제

728x90
반응형

#개발을 하다보면 여러 함수의 공통적으로 사용해야 하는 기능이 있다.

공통 함수를 사용 하여도 되지만, 공통 함수를 사용하기 어려운 경우들이 많다.

이럴경우 사용하는 것이 AOP 이다.

밑에 예제는 각 함수가 실행된 시간을 출력하는 예제이다.

 

@Aspect
@Component
public class TimeTraceAop {
    
    @Around("execution(* hello.hellospring..*(..))") //aop 적용할 범위 
    public Object execute(ProceedingJoinPoint joinPoint) throws Throwable{
        long start = System.currentTimeMillis();
        try{
            return joinPoint.proceed(); //다음 메소드로 진행
        }finally{
            long finish = System.currentTimeMillis();
            long time = finish - start;
        }
    }
}

- @Aspect 어노테이션을 이용하여 AOP 함수인걸 명시한다.

- @Around는 aop를 적용할 범위를 지정할 수 있다. 예제에서는 hello.hellospring 패키지 하위 모두를 범위로 지정하였다.

728x90
반응형

'개발일기 > Spring' 카테고리의 다른 글

[Spring]싱글톤 컨테이너  (0) 2024.03.18
[Spring]BeanFactory , ApplicationContext  (0) 2024.03.18
[Spring] ApplicationContext  (0) 2024.03.15
IoC(제어의 역전)와 DI(의존성 주입)  (0) 2024.03.15
객체지향5원칙 SOLID  (0) 2024.03.15