국비 내용 정리/Spring
국비 67일 내용정리 (AOP @어노테이션)
개발자가 되고 싶은 곰
2024. 10. 16. 21:11
AOP 정리
AOP 는 Service 레이어랑 겹치기 때문에 Class 상단에 @으로 @Service 를 사용하고
<aop:aspect> 태그를 사용하기 위해 @어노테이션으로 @Aspect 를 추가해줍니다.
<aop:poincut> 태그를 사용할때는 @Pointcut 어노테이션을 사용하며
조심해야할 점으로 @PointCut 어노테이션도 있기 때문에 잘확인해서 사용해야한다.
Pointcut 어노테이션은 여러 Advice 클래스들에 사용될 수 있기 때문에
보통 Pointcut 을 모아둔 클래스를 추가해둔다.
+) Pointcut을 사용하는 메서드는 참조 메서드로 메모리를 차지하지 않는다.
Pointcut을 참조 메서드로 사용하면서 중복코드가 줄어들면서 응집도가 높아진다.
AOP 설정이 완료되었다면
applicationContext.xml (스프링컨테이너)에 아래 태그를 추가해주면 된다.
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
@Pointcut 하위 @(어노테이션)
@Before : 메서드 실행 전 실행한다.
@After : 메서드 실행 후 실행한다.
@AfterReturning : 메서드가 예외 없이 정상 종료 후 실행한다.
@AfterThrowing : 메서드 실행 후 예외를 던진 후 실행한다.
@Around : 메서드 실행 전, 후 실행
-> ProceedingJoinPoint 객체를 사용한다.
.proceed() 를 사용하여 메서드를 실행으로 전 후 처리를 한다.
728x90