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

          aspectj學習

          Posted on 2007-12-08 13:42 Edward's 閱讀(211) 評論(0)  編輯  收藏 所屬分類: 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、修改配置文件,對Aop提供代碼提示
          xmlns:aop="
          http://www.springframework.org/schema/aop
          http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

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

          }
          實現(xiàn)類
          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的類
          @Aspect
          public class MyUserManager {
              @Pointcut("execution(* add*(..))")
              public void addUser(){}
              @Before("addUser()")
              public void myMethod(){
                  System.out.println("myMethod");
              }

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

          5、如果被代理的對象沒有實現(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>


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 海门市| 长丰县| 康马县| 黔南| 名山县| 大港区| 乐亭县| 黑水县| 苍山县| 大庆市| 通化县| 鲁甸县| 长丰县| 玛纳斯县| 加查县| 洞口县| 临西县| 泸西县| 铁力市| 云龙县| 阿克陶县| 高淳县| 雷波县| 乐都县| 鄂托克前旗| 棋牌| 宁蒗| 新巴尔虎右旗| 岑溪市| 筠连县| 阿瓦提县| 馆陶县| 定兴县| 通河县| 溧水县| 科技| 呼图壁县| 美姑县| 舞钢市| 柳河县| 青龙|