1.業務類
          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.實現MethodBeforeAdvice接口,實現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 閱讀(331) 評論(0)  編輯  收藏 所屬分類: Framework

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


          網站導航:
           
          主站蜘蛛池模板: 绍兴市| 通山县| 泽普县| 崇左市| 赤城县| 朝阳县| 大荔县| 晋城| 乌审旗| 南漳县| 尤溪县| 玉山县| 平顶山市| 台南市| 务川| 黄石市| 明光市| 堆龙德庆县| 竹溪县| 藁城市| 滨海县| 凤庆县| 建宁县| 天全县| 临西县| 扬州市| 莱州市| 恩平市| 兴仁县| 永靖县| 甘德县| 呼伦贝尔市| 长丰县| 来安县| 威海市| 广德县| 西青区| 三穗县| 封丘县| 邳州市| 泾源县|