코드 곳곳에 비슷한 패턴으로 들어가 있는 부가작업: 로깅, 트랜잭션, 등

이 코드를 한 클래스에 모아놓음 : Advice

그리고 남겨진 순수한 코드 : Core Concern



이제 Advice와 핵심코드를 엮어주는 일: Weaving

어떤 패턴으로 엮어줄 것인가: PointCut



엮어줄 시점을 정하는 것: JoinPoint

핵심코드 실행시점 전에 Advice를 실행 : before

핵심코드 실행시점 전과 후에 Advice를 실행 : around

핵심코드 실행시 예외 발생 Advice를 실행 : throw

...


XML

<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] 링크




+ Recent posts