지금까지 Advisor를 사용할때는, Advisor로 호출할 클래스를 bean으로 등록하고 그 Advisor를 등록하여 사용하는 방법을 사용하였다.

@AspectJ를 사용하면 Advisor역할을 할 bean을 어노테이션이 붙어있는 클래스 자체에서 설정할 수 있다.

 

 

@AspectJ를 사용하기 위해서는 xml파일에 네임스페이스를 추가해주어야한다.

 

 

<aop:aspectj-autoproxy /> 를 추가해주면 advisor 클래스에 설정되어 있는 어노테이션을 분석하여 셋팅을 할 수 있게 해준다.

 

 

 

BeanTest1이라는 클래스를 만들고 @Component 를 써주어 빈으로 등록해주었다. 

AdvisorClass 라는 클래스를 만들고 @Component 를 써주어 빈으로 등록해주었다. Advisor역할을 할 빈을 여기에 설정할 예정이다. 컴포넌트 어노테이션을 써주었기 때문에 컴포넌트 스캔을 해주어야 한다.

 

 

이렇게 지정해주고 Advisor클래스에 @AspectJ 어노테이션을 이용해서 설정을 해주겠다.

 

 

 

이런식으로 @AspectJ 를 붙여주고 그 클래스안의 메소드(advice)에 어노테이션을 붙여서 선언해준다.

각각 @Before, @After, @Around, @AfterReturning, @AfterThrowing 이며 속성에는 execution명시자를 넣어서 관심사를 설정해주었다. xml파일에서 설정해준것과 형식은 유사했다.

 

 

 

xml 에서 말고 당연히 java configuration에서도 할 수 있을것이다.

 

 

<aop:aspectj-autoproxy /> xml에서 이렇게 했다면 java에서는 @EnableAspectJAutoProxy 해주면 된다.

 

'JAVA > Spring' 카테고리의 다른 글

MyBatis  (0) 2020.04.21
Spring JDBC  (0) 2020.04.20
execution 명시자  (0) 2020.04.17
AOP  (0) 2020.04.17
@Component 어노테이션  (0) 2020.04.15

+ Recent posts