XML 스키마 기반 AOP를 구현하는 과정
① 관련 jar 파일을 클래스패스에 추가
② 공통 기능을 제공하는 Advice 클래스를 구현
③ XML 설정 파일에서 <aop:config>를 이용해서 Aspect를 설정한다. Advice를 어떤 PointCut에 적용할지를 지정하게 됨
FaqBoardImpl.java
package sp.aop.service; public class FaqBoardImpl implements Board {
@Override |
NoticeBoardImpl.java
package sp.aop.service; public class NoticeBoardImpl implements Board {
@Override |
BoardController.java
package sp.aop.controller; import javax.annotation.Resource; import org.springframework.web.servlet.ModelAndView; import sp.aop.service.Board;
public class BoardController extends
@Resource(name="noticeBoard") return null; } |
TimeCheckAdvice.java
package sp.aop.advice; import org.aspectj.lang.ProceedingJoinPoint;
public class TimeCheckAdvice { public Object timeChk(ProceedingJoinPoint joinPoint) throws Throwable{ |
spring302-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" <context:annotation-config/> |
●위 AOP의 해석
▶ timeCheckAdvice 빈이 Aspect 기능을 제공함
▶ timeAspect가 sp.aop 패키지 및 그 하위 패키지의 모든 public 메소드에 Around Advice로 적용되며, 이때 Aspect의 구현 클래스인 TimeCheckAdvice의 timeChk() 메소드가 호출됨
※AOP 태그 설명
<aop:config> |
AOP 설정 정보임을 나타냄 |
<aop:aspect> | Aspect를 설정 |
<aop:pointcut> |
Pointcut을 설정 |
<aop:around> |
Around Advice를 설정, 이 외에도 다양한 Advice를 설정 |
결과
<<===== START =====>> |
[참고자료] Spring 3.0 프로그래밍 - 최범균
'프로그램 > Spring 3.0' 카테고리의 다른 글
AOP 심플예제 (0) | 2012.05.03 |
---|---|
AOP - XML 스키마 기반 - Aspect 설정 (0) | 2012.05.01 |
AOP(Aspect Oriented Programming) (0) | 2012.04.30 |
라이프 사이클, @Scope, @Qualifier - 작성중... (0) | 2012.04.30 |
@Configuration - @Import (0) | 2012.04.30 |