1.業(yè)務類
          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 閱讀(333) 評論(0)  編輯  收藏 所屬分類: Framework

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 湖北省| 昔阳县| 清水县| 即墨市| 利津县| 公主岭市| 石林| 五莲县| 清镇市| 兰州市| 凤城市| 湘西| 临漳县| 东乡县| 文山县| 柏乡县| 舞钢市| 永修县| 都兰县| 雅安市| 信阳市| 河源市| 卢湾区| 焉耆| 峨眉山市| 桂平市| 榆中县| 花垣县| 大余县| 罗城| 布尔津县| 珲春市| 泰兴市| 弥勒县| 游戏| 繁昌县| 齐河县| 吉首市| 万宁市| 永登县| 精河县|