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)

          搜索

          最新評論

          主站蜘蛛池模板: 龙里县| 沁源县| 个旧市| 瑞金市| 卢氏县| 香格里拉县| 忻城县| 柞水县| 司法| 汾西县| 浦东新区| 岫岩| 三江| 象州县| 惠州市| 青阳县| 阜阳市| 曲沃县| 革吉县| 天长市| 巩留县| 岐山县| 扬州市| 花莲市| 韶关市| 虞城县| 嫩江县| 青铜峡市| 秦安县| 肇庆市| 龙门县| 溧阳市| 长沙县| 苍溪县| 昌邑市| 老河口市| 得荣县| 昌都县| 丰宁| 尼玛县| 炎陵县|