1. AOP란
어떤 서비스나 메서드가 실행되기전에 공통적으로 들어 가야할 이벤트, 메서드 등이 필요 할때 사전에 정의해둔 클래스를 작동하고 나서 실제 서비스가 작동하게 하는 것.
2. AOP의 장점
불필요한 비지니스 로직이 줄어서 좀 더 직관적인 비지니스 로직을 짤 수 있음.
3. 사용 예시
@Aspect
@Component
public class TimeTraceAop {
@Around("execution(* hello.hellospring..*(..))")
public Object execute(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
System.out.println("START: " + joinPoint.toString());
try {
return joinPoint.proceed();
} finally {
long finish = System.currentTimeMillis();
long timeMs = finish - start;
System.out.println("END: " + joinPoint.toString() + " " + timeMs + "ms");
}
}
}
이렇게 컴포넌트와 Aspect를 명시 해놓으면 @Around 안에 있는 hello.hellospring 아래에 있는 모든 클래스 들은 동작하기전에 TimeTarce를 거쳐 간다.
3. 동작 구조
- AOP 적용전
- AOP 적용후
'JAVA > Spring Boot' 카테고리의 다른 글
(Spring Boot)Entity에 있는 리스트 조회 제한하기 (0) | 2021.07.08 |
---|---|
(디버깅)일대다 양방향 Response Error (0) | 2021.07.02 |
(스프링) jdbc, jdbcTemplate 차이. (0) | 2021.06.23 |
(Spring Boot)@GetMapping과 @PostMapping (0) | 2021.06.19 |
(Spring Boot) 테스트 코드 작성 방법 (0) | 2021.06.19 |