AOP

bomb123·2023년 9월 14일
0

[Spring]
1. AOP란?
애플리케이션의 핵심적인 기능에서 부가적인 기능을 분리하여 모듈로 만들고 설계하여 개발하는 방법
목적(장점) : 1. 관심사 분리(핵심 로직, 부가 로직), 2. 중복 코드 제거 3. 비지니스 로직 순수성 유지

Spring AOP의 핵심 개념과 구성 요소:
1. Aspect: Aspect는 AOP에서 관심사를 모듈화한 단위입니다. Aspect는 Advice와 Pointcut을 포함합니다.
2. Advice : Aspect에서 실질적으로 어떤 일을 해야할지에 대한 부가기능을 담은 구현체를 의미
3. PointCut : 부가기능이 어느 지점에서 실행될지를 정의하는 것(ex : com.example.controller)

@Aspect
public class LoggingAspect {

@Around("execution( com.example.service..*(..))")
public Object logMethodExecution(ProceedingJoinPoint joinPoint) throws Throwable {
// 메서드 호출 전에 수행할 작업
System.out.println("메서드 호출 전: " + joinPoint.getSignature());

// 원본 메서드 호출
Object result = joinPoint.proceed();

// 메서드 호출 후에 수행할 작업
System.out.println("메서드 호출 후: " + joinPoint.getSignature());

return result; // 메서드의 결과를 그대로 반환

}
}
profile
bomb

0개의 댓글