본문 바로가기
IT Study/Spring

Spring - aop 설정을 @(어노테이션)으로 설정하기

by hhyyyjun 2023. 1. 2.

applicationContext.xml에서 스프링 컨테이너에게

aop설정을 어노테이션으로 한다는 것을 안내해주어야 한다.

<!-- aop를 @로 하겠다~ -->
	<aop:aspectj-autoproxy/>

@을 통한 aop 설정 순서

1) 포인트컷 설정

- 내가 연결하고자하는 횡단관심이 작성된 클래스에서 설정 가능

- @Pointcut("패키지가 포함된 클래스명") 으로 설정

2) 횡단관심 설정

- @시점설정("포인트컷()") 으로 설정

3) 포인트컷 + 횡단관심 결합

- @Aspect 사용

포인트컷과 횡단관심을 연결할 클래스

AfterReturning / AfterThrowing / Around인 경우의 시점 설정

하지만 불편한 점이 발생하는데, 바로 Pointcut이 반복되는 점이다. 매번 모든 클래스에서 Pointcut을 작성해주어야 하는데 이에 대한 해결방법은

Pointcut만 모아놓은 클래스를 작성하는 것이다.


Pointcut 클래스

@Pointcut(메서드 시그니처)

기존의 xml 파일에서 설정한 부분을 java에서 표현하기

이제 이 포인트컷을 사용할 클래스에서 호출만 하면 된다.

사진에서 빨간 박스 부분에 기존에서는 포인트컷명만 불렀지만, 포인트컷을 클래스로 전부 모아놓게 되면서 클래스를 통해 메서드 호출만 하면

코드 길이를 줄일 수 있는 장점이 있다.

 
 

댓글