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 劉錚 閱讀(216) 評論(0)  編輯  收藏 所屬分類: Spring

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          留言簿(1)

          文章分類(141)

          文章檔案(147)

          搜索

          最新評論

          主站蜘蛛池模板: 建水县| 福贡县| 武鸣县| 米林县| 尚义县| 汝阳县| 来安县| 留坝县| 都江堰市| 从化市| 扬州市| 金溪县| 抚远县| 景东| 茂名市| 华安县| 西乡县| 桦南县| 郑州市| 香港| 汕尾市| 兰坪| 东丰县| 泰宁县| 绥阳县| 连山| 安泽县| 河间市| 洪洞县| 友谊县| 绩溪县| 德化县| 大宁县| 武邑县| 岗巴县| 高要市| 长宁区| 阿克陶县| 北碚区| 长葛市| 扎鲁特旗|