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 |