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
개발자가 되고 싶은 곰