posts - 12, comments - 4, trackbacks - 0, articles - 0

          aspectj學(xué)習(xí)

          Posted on 2007-12-08 13:42 Edward's 閱讀(215) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Spring

          1、添加jar包
          Spring的核心包
          $SPRING_HOME/dist/spring.jar,
          $SPRING_HOME/lib/jakarta-commons/commons-logging.jar,
          $SPRING_HOME/lib/log4jlog4j-1.2.14.jar
          aspectj支持的jar包
          $SPRING_HOME/lib/aspectj/*.jar

          2、修改配置文件,對(duì)Aop提供代碼提示
          xmlns:aop="
          http://www.springframework.org/schema/aop
          http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

          3、創(chuàng)建接口和實(shí)現(xiàn)類(lèi)
          接口
          public interface UserManager {
              public void addUser(String name);
              public void delUser(int id);

          }
          實(shí)現(xiàn)類(lèi)
          public class UserManagerImpl implements UserManager {

              public void addUser(String name) {
                  System.out.println("addUser " + name);
              }

              public void delUser(int id) {
                  System.out.println("delUser "+id);
              }

          }
          PointCut和Advise的類(lèi)
          @Aspect
          public class MyUserManager {
              @Pointcut("execution(* add*(..))")
              public void addUser(){}
              @Before("addUser()")
              public void myMethod(){
                  System.out.println("myMethod");
              }

          }
          4、配置文件設(shè)置
          <aop:aspectj-autoproxy />
          <bean id="user" class="org.edward.UserManagerImpl" />
          <bean id="aop" class="org.edward.MyUserManager" />

          5、如果被代理的對(duì)象沒(méi)有實(shí)現(xiàn)的接口,就必須加入CBLIB的支持
          加入$SPRING_HOME/lib/cglib/cglib-nodep-2.1_3.jar
          修改配置文件
          <aop:aspectj-autoproxy proxy-target-class="true" />

          #Spring Aop
              <bean id="user" class="org.edward.aop3.UserManagerImpl" />
              <bean id="aop" class="org.edward.aop3.MyUserManager" />
              <aop:config>
                  <aop:aspect id="log" ref="aop">
                      <aop:pointcut id="logHello" expression="execution(* add*(..))"/>
                      <aop:before pointcut-ref="logHello" method="myMethod"/>
                      <aop:after pointcut-ref="logHello" method="myMethod"/>
                  </aop:aspect>
              </aop:config>


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大宁县| 贵港市| 大化| 莲花县| 汝州市| 义乌市| 长岭县| 鄂托克前旗| 灌南县| 玉龙| 繁昌县| 通山县| 泰来县| 汶上县| 老河口市| 西安市| 镇远县| 古浪县| 屏山县| 涪陵区| 娄底市| 古蔺县| 青州市| 淳安县| 苗栗市| 双峰县| 江源县| 盐津县| 云霄县| 丰原市| 息烽县| 洪洞县| 鹿邑县| 咸阳市| 宜兴市| 柘荣县| 成都市| 澄城县| 特克斯县| 南汇区| 烟台市|