지금까지 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 |