1. POJO 기반 AOP 구현
- POJO 기반 Advice 클래스 작성
- 설정파일에 AOP 설정
+ Advice class를 Bean으로 설정
+ <aop:aspect> 태그를 이용해 Advice, Pointcut을 설정한다.
2. 시점에 따른 5가지 태그
- before
: 대상 객체의 메소드가 실행되기 전에 실행됨
+ return type : 상관없으나 void로 한다.
+ argument : 없거나 JoinPoint 객체를 받는다.
- after-returning
: 대상객체의 메소드 실행이 정상적으로 끝난 뒤 실행됨
+ return type : 상관없으나 void로 한다.
+ argument : 없거나 JoinPoint 객체를 받는다.
+ returning
++ B.L에서 리턴받은 값을 매개변수로 받을 수 있다..
- after-throwing
: 대상 객체의 메소드 실행 중 예외가 발생한 경우 실행됨
+ return type : 상관없으나 void로 한다.
+ argument : 없거나 JoinPoint 객체를 받는다.
+ throwing
++ 던져진 Exception을 매개 변수로 받을 수 있다.
- after
: 대상객체의 메소드 실행이 종료된 뒤 오류발생 여부와 상관없이 무조건 실행된다.
+ return type : 상관없으나 void로 한다.
+ argument : 없거나 JoinPoint 객체를 받는다.
- around
: 위 네가지 Advice를 구현할 수 있는 Advice
+ return type : Object 또는 void Around에서는 리턴타입이 중요하다.
+ argument
++ ProceedingJoinPoint
+ 실제 구동 메소드를 우리가 만들어야한다.
++ <aop:around method="aroundLogging" pointcut-ref="publicmethod"/>
++ public Object aroundLogging(ProceedingJoinPoint joinPoint) throws Throwable{
// 1. before 코드
try{
Object retValue = joinPoint.proceed(); //대상 객체의 메소드 호출
// 2. after - returning 코드
return retValue; 호출한 곳으로 리턴 값을 넘긴다. - 넘기기전 수행가능
}catch(Throwable e)
// 3. after - throwing 코드
throw e;
}finally{
// 4. after 코드
}
3. AOP 용어 다시 정리
- Target : 핵심 사항을 가지고 있는놈
- joinPoint : 어드바이저가 적용되는 시점. 어쨋든 실제적으로 조인포인트는 '적용 가능한 메소드'라고 보면된다.
- Pointcut : 실제적으로 적용한 메소드(시점)을 포인트컷이라 한다.
'프로그래밍 > SPRING 3.X' 카테고리의 다른 글
SimpleFormController (0) | 2013.07.23 |
---|---|
AspectJ의 Pointcut 표현식 (0) | 2013.07.15 |
InitializingBean 인터페이스 (0) | 2013.07.15 |
스프링에서 <constructor-arg>사용 (0) | 2013.06.24 |
이클립스에서 git pull 나는 오류중 The current branch is not configured for pull No value for key branch.master.merge found in configuration 해결법 (0) | 2013.06.20 |