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

          aspectj學習

          Posted on 2007-12-08 13:42 Edward's 閱讀(215) 評論(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、創建接口和實現類
          接口
          public interface UserManager {
              public void addUser(String name);
              public void delUser(int id);

          }
          實現類
          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、如果被代理的對象沒有實現的接口,就必須加入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>


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


          網站導航:
           
          主站蜘蛛池模板: 安图县| 无棣县| 周宁县| 沙洋县| 体育| 广南县| 恩施市| 玉屏| 隆安县| 泗阳县| 搜索| 常山县| 延长县| 宁海县| 津市市| 永靖县| 游戏| 黑河市| 平湖市| 乐安县| 定日县| 天等县| 中西区| 包头市| 奎屯市| 汉川市| 锦州市| 磴口县| 嘉义市| 连平县| 湖南省| 海伦市| 临泽县| 湾仔区| 丹棱县| 长乐市| 安新县| 双流县| 台湾省| 鄂伦春自治旗| 灵川县|