Spring學習心得(五)

           

          Spring學習心得(五)

          1.       advice細粒度的控制,可以通過pointcut類來控制。

          2.       advisoradvicepointcut的集合體。

          3.       控制方法如下:

          a)       定義Pointcut中的ClassFilter實現類和MethodMatcher實現類,完成對classmethod方法的advice的控制,其中MethodMatcher中的matches(Method method, Class targetClass)方法是對classmethod的雙重并集控制

          b)      定義新的Pointcut實現類,并將ClassFilter實現類和MethodMatcher實現類賦值

          c)       定義新的advisor并且實現PointcutAdvisor接口

          d)      在定義的advisor中使用PointcutAdvisor接口中的getPointcut()getAdvice()Pointcut的實現類和需要的advice進行傳遞

          e)       最后在application-context.xml中將

          <bean id="XXXX"

          class="org.springframework.aop.framework.ProxyFactoryBean">

                <property name="InterceptorNames">

                     <list>

                           <idref local="定義新的advisorid">

                     </list>

                <property>

          </bean>

          <bean id="定義新的advisorid" class="定義新的advisor的類     " >

          </bean>

          4.       為了使用靜態的Pointcut,可以使用StaticMethodMatcherPointcut,這時候

          public final boolean isRuntime()

              {

                  return false;

          }

          便不能修改了。也就是靜態的Pointcut

          5.       更簡單的是使用NameMatchMethodPointcutAdvisor,這里一個advisor只有一個advice

           

          v

          posted on 2007-09-05 16:50 劉錚 閱讀(217) 評論(0)  編輯  收藏 所屬分類: Spring

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          留言簿(1)

          文章分類(141)

          文章檔案(147)

          搜索

          最新評論

          主站蜘蛛池模板: 门头沟区| 申扎县| 江口县| 白朗县| 二连浩特市| 澎湖县| 海宁市| 小金县| 都匀市| 靖远县| 大厂| 乌兰县| 红河县| 衡东县| 古田县| 鄂托克旗| 五台县| 商洛市| 临清市| 阿城市| 宝兴县| 东港市| 桓仁| 晋江市| 迭部县| 北宁市| 陆河县| 阿勒泰市| 平江县| 施秉县| 崇礼县| 铁岭市| 夏津县| 崇州市| 台北县| 天津市| 晋州市| 霸州市| 南涧| 小金县| 凤凰县|