1.業(yè)務(wù)類
          package?cn.blogjava.aop;

          public?class?HelloSpeaker?implements?IHello?{

          ????
          public?void?hello(String?name)?{
          ????????System.out.println(
          "Hello,?"?+?name?);
          ????}
          }

          2.將要添加Aspect的方法抽象到接口中
          package?cn.blogjava.aop;

          public?interface?IHello?{
          ????
          public?void?hello(String?name);
          }

          3.實現(xiàn)MethodBeforeAdvice接口,實現(xiàn)log功能
          package?cn.blogjava.aop;

          import?java.lang.reflect.Method;
          import?java.util.logging.Level;
          import?java.util.logging.Logger;
          import?org.springframework.aop.MethodBeforeAdvice;

          public?class?LogBeforeAdvice?implements?MethodBeforeAdvice{
          ????
          ????
          private?Logger?logger?=?Logger.getLogger(this.getClass().getName());
          ????
          ????
          public?void?before(Method?method,?Object[]?args,?Object?targer){
          ????????logger.log(Level.INFO,?
          "method?starts"?+?method);
          ????}
          }

          4.配置文件
          <?xml?version="1.0"?encoding="UTF-8"?>
          <!DOCTYPE?beans?PUBLIC?"-//SPRING/DTD?BEAN/EN"
          ????"http://www.springframework.org/dtd/spring-beans.dtd"
          >
          <beans>
          ????
          <bean?id="logBeforeAdvice"?
          ????????class
          ="cn.blogjava.aop.LogBeforeAdvice"/>
          ????
          <bean?id="helloSpeaker"
          ????????class
          ="cn.blogjava.aop.HelloSpeaker"?/>
          ????
          <bean?id="helloProxy"
          ????????class
          ="org.springframework.aop.framework.ProxyFactoryBean">
          ????????
          <property?name="proxyInterfaces">
          ????????????
          <value>cn.blogjava.aop.IHello</value>
          ????????
          </property>
          ????????
          <property?name="target">
          ????????????
          <ref?bean="helloSpeaker"?/>
          ????????
          </property>????????
          ????????
          <property?name="interceptorNames">
          ????????????
          <list>
          ????????????????
          <value>logBeforeAdvice</value>
          ????????????
          </list>
          ????????
          </property>????????
          ????
          </bean>
          </beans>

          5.測試類
          package?cn.blogjava.aop;

          import?org.springframework.context.ApplicationContext;
          import?org.springframework.context.support.FileSystemXmlApplicationContext;

          public?class?SpringAopDemo?{

          ????
          public?static?void?main(String[]?args)?{
          ????????ApplicationContext?context?
          =?
          ????????????
          new?FileSystemXmlApplicationContext("beans-config.xml");
          ????????IHello?helloProxy?
          =(IHello)context.getBean("helloProxy");
          ????????helloProxy.hello(
          "YYY");
          ????}
          }
          posted on 2006-07-28 17:07 knowhow 閱讀(330) 評論(0)  編輯  收藏 所屬分類: Framework

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 肇东市| 兖州市| 新源县| 仁化县| 宁陕县| 佛教| 彰化县| 商丘市| 商城县| 九江市| 玉屏| 雅江县| 大田县| 抚宁县| 织金县| 太原市| 龙口市| 尖扎县| 灯塔市| 玉林市| 合水县| 饶河县| 德阳市| 和田市| 海兴县| 阿荣旗| 罗江县| 江安县| 吉隆县| 和政县| 深水埗区| 宁夏| 梧州市| 潼关县| 乌什县| 海南省| 东台市| 涞水县| 苍溪县| 滨海县| 左贡县|