• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測測之框架:一個使用spring框架AOP的有趣例子

    發布: 2009-11-04 10:49 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 212次 | 進入軟件測試論壇討論

    領測軟件測試網

    package com.denny_blue.springdemo.aop;

    import java.util.HashSet;
    import java.util.Set;

    import org.aopalliance.intercept.MethodInterceptor;
    import org.aopalliance.intercept.MethodInvocation;

    public class MyAroundAdvice implements MethodInterceptor {

     private Set customers=new HashSet();    //保存購過書的顧客信息
     public Object invoke(MethodInvocation invocation) throws Throwable {
            String customer=(String)invocation.getArguments()[0];
            if(customers.contains(customer)){
             throw new BuyBookException("對不起,一名顧客只能買一本打折書!");
            }
            Object result=invocation.proceed();   //調用MyBuyBook中的buyBook方法,即真實操作
            customers.add(customer);
            return result;
     }

    }

    好了,最后一個,異常增強,當顧客要買< spring in action>時,我們的書店沒書了,請倉庫部門趕快訂貨!

    package com.denny_blue.springdemo.aop;

    import org.springframework.aop.ThrowsAdvice;

    public class MyThrowsAdvice implements ThrowsAdvice {
        public void afterThrowing(NoThisBookException e){    //可以定義多個方法,只要傳入的參數是不同異常
         System.out.print("通知倉庫,趕緊加訂書!");
        }

    }


    好了沒?還沒,我們需要一個XML文件來組裝這些對象,來代理業務接口,完整的beans.xml如下,各元素的含義請自己查看spring reference

    ?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="myBuyBookTarget" class="com.denny_blue.springdemo.aop.MyBuyBook"/>
         < bean id="myBeforeAdvice" class="com.denny_blue.springdemo.aop.MyBeforeAdvice"/>
         < bean id="myAroundAdvice" class="com.denny_blue.springdemo.aop.MyAroundAdvice"/>
         < bean id="myAfterAdvice" class="com.denny_blue.springdemo.aop.MyAfterAdvice"/>
         < bean id="myThrowsAdvice" class="com.denny_blue.springdemo.aop.MyThrowsAdvice"/>
         < bean id="buyBook" class="org.springframework.aop.framework.ProxyFactoryBean">
            < property name="proxyInterfaces">

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    43/4<1234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>