코드 곳곳에 비슷한 패턴으로 들어가 있는 부가작업: 로깅, 트랜잭션, 등
이 코드를 한 클래스에 모아놓음 : Advice
그리고 남겨진 순수한 코드 : Core Concern
이제 Advice와 핵심코드를 엮어주는 일: Weaving
어떤 패턴으로 엮어줄 것인가: PointCut
엮어줄 시점을 정하는 것: JoinPoint
핵심코드 실행시점 전에 Advice를 실행 : before
핵심코드 실행시점 전과 후에 Advice를 실행 : around
핵심코드 실행시 예외 발생 Advice를 실행 : throw
...
<bean id="adviceUsingXML" class="egovframework.rte.fdl.aop.sample.AdviceUsingXML" />
<bean id="concernSample" class="egovframework.rte.fdl.aop.sample.ConcernSample" />
<aop:config>
<aop:pointcut id="targetMethod" expression="execution(* egovframework.rte.fdl.aop.sample.*Sample.*(..))" />
<aop:aspect ref="adviceUsingXML">
<aop:before pointcut-ref="targetMethod" method="beforeTargetMethod" />
<aop:after-returning pointcut-ref="targetMethod" method="afterReturningTargetMethod" returning="retVal" />
<aop:after-throwing pointcut-ref="targetMethod" method="afterThrowingTargetMethod" throwing="exception" />
<aop:after pointcut-ref="targetMethod" method="afterTargetMethod" />
<aop:around pointcut-ref="targetMethod" method="aroundTargetMethod" />
</aop:aspect>
</aop:config>
code from: egovframe textbook
추천예제: 최범균님 스프링3.0 서적 chap01 예제
http://www.kame.co.kr/pds1.html?main=main_pds [G220] 링크