AOP PointCut (XML)


Section 1. PointCut


1. PointCut
Weavingを適用する特定のJoinPointを指定します.
=AOPテクノロジーをどのCoreConcernに適用するかを指定
  • 省エネ-追加機能を使用して実際のオブジェクトを包装または接続する方法
  • .
  • JointPoint-実際に委任されたオブジェクトのメソッド
  • 2.PointCutの適用
    BeforeAdvisor付加機能は、
  • の合計メソッドのみに対して実行することを指定する.
  • Proxyに推奨を登録する場合は、list値
  • としてPoinCutオブジェクトを指定します.

    3. NameMatchMethodPointcut
    オブジェクト
  • を作成して、追加機能を実際のオブジェクトに適用する方法の情報を提供する.
    指定
  • setMappedNameメソッド名合計
  • <bean id="classicPointCut" class="org.springframework.aop.support.NameMatchMethodPointcut">
          <property name="mappedName" value="total"/>
    </bean>
    4. DefaultPointcutAdvisor
  • 追加機能ハンドラおよびメソッド情報を有するAdvisorオブジェクト
  • を作成する.
  • logBeforeAddviceオブジェクト(ハンドラ)
  • を指定
  • ClassicPointCutオブジェクト(適用するメソッド)
  • を指定します.
    <bean id="classicBeforeAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
          <property name="advice" ref="logBeforeAdvice"/>
          <property name="pointcut" ref="classicPointCut"/>
    </bean>
    5. NameMatchMethodPointcutAdvisor
  • 簡略化PointCut
  • PointAdvisorにおけるNameMatchMethodPointcutの実装
    // 하나의 메서드만을 지정
    <bean id="classicBeforeAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
          <property name="advice" ref="logBeforeAdvice"/>
          <property name="mappedName" value="total"/>
    </bean> 
    
    // 여러 메서드 지정
    <bean id="classicBeforeAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
          <property name="advice" ref="logBeforeAdvice"/>
          <property name="mappedName">
          		<list>
          			<value>total</value>
          			<value>mean</value>
          		<list>
          </property>
    </bean>