亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用代碼學習Spring:IoC、AOP

2019-11-18 15:28:29
字體:
來源:轉載
供稿:網友

1 從http://www.sPRingframework.org下載Spring
2 用eclipse新建java項目
3 建立我們的業務方法接口
public interface BusinessObject {
    public void doSomething();
    public void doAnotherThing();
}
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;public interface BusinessObject {
    public void doSomething();
    public void doAnotherThing();
}
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

4 實現業務方法,注重這是的setWords使用了依靠注入,所謂依靠注入就是把配置文件中的字符串什么的在程序運行時“自動”放到我們的程序中來。假如不是這樣,我們就只能在代碼中固化這些東西,從而違反了面向對象的依靠倒置原則,還有一種滿足依靠倒置的方法,即依靠查詢,這就是所謂的factory模式,即在代碼中請求某種抽象的東西,然后根據配置得到它,但這種辦法向對于依靠注入多了對環境的依靠,且代碼冗余,EJB的JNDI查詢就屬于這種。另外我們的Spring配置文件是以bean為核心的,就是我們寫的一個類,在xml中描述它的名稱、位置和涵蓋的內容、關系。
public class BusinessObjectImpl implements BusinessObject {
    private String words;
    public void setWords(String words){
        this.words = words;
    }
    public void doSomething() {
        Log log = LogFactory.getLog(this.getClass());
        log.info(words);
    }
    public void doAnotherThing() {
        Log log = LogFactory.getLog(this.getClass());
        log.info("Another thing");
    }

}public class BusinessObjectImpl implements BusinessObject {
    private String words;
    public void setWords(String words){
        this.words = words;
    }
    public void doSomething() {
        Log log = LogFactory.getLog(this.getClass());
        log.info(words);
    }
    public void doAnotherThing() {
        Log log = LogFactory.getLog(this.getClass());
        log.info("Another thing");
    }

}

5 建立一個運行方法類,從配置文件spring-beans.xml中讀入bo這個類的定義,然后實例化一個對象
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class Main {
    public static void main(String[] args){
        XmlBeanFactory xbf = new XmlBeanFactory(new ClassPathResource("spring-beans.xml"));
        BusinessObject bo = (BusinessObject)xbf.getBean("bo");
        bo.doSomething();
        bo.doAnotherThing();
    }
}import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class Main {
    public static void main(String[] args){
        XmlBeanFactory xbf = new XmlBeanFactory(new ClassPathResource("spring-beans.xml"));
        BusinessObject bo = (BusinessObject)xbf.getBean("bo");
        bo.doSomething();
        bo.doAnotherThing();
    }
}

6 建立一個攔截器類invoke是MethodInterceptor必須實現的方法,表示攔截時的動作,大家仔細體會代碼中的含義
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class MyInterceptor implements MethodInterceptor {
    private String before, after;
    public void setAfter(String after) {
        this.after = after;
    }
    public void setBefore(String before) {
        this.before = before;
    }
    public Object invoke(MethodInvocation invocation) throws Throwable {
        Log log = LogFactory.getLog(this.getClass());
        log.info(before);
        Object rval = invocation.proceed();
        log.info(after);
        return rval;
    }
}import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class MyInterceptor implements MethodInterceptor {
    private String before, after;
    public void setAfter(String after) {
        this.after = after;
    }
    public void setBefore(String before) {
        this.before = before;
    }
    public Object invoke(MethodInvocation invocation) throws Throwable {
        Log log = LogFactory.getLog(this.getClass());
        log.info(before);
        Object rval = invocation.proceed();
        log.info(after);
        return rval;
    }
}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人巨大精品一区二区| 国模精品视频一区二区| 大桥未久av一区二区三区| 欧美日韩午夜剧场| 亚洲一区二区三区成人在线视频精品| 亚洲a成v人在线观看| 奇米四色中文综合久久| 中文字幕久久久| 国产一区二区三区视频在线观看| 91在线观看免费观看| 亚洲在线www| 久久天天躁日日躁| 91免费福利视频| 亚洲欧美国产精品专区久久| 中文字幕国产日韩| 国产欧美中文字幕| 欧美日韩国产丝袜另类| 欧美高清不卡在线| 国产精品久久久久久网站| 亚洲一区精品电影| 国产精品高潮呻吟久久av黑人| 日本国产欧美一区二区三区| 亚洲女人被黑人巨大进入| 4p变态网欧美系列| 国产一区二区三区日韩欧美| 欧美丝袜美女中出在线| 91精品国产91久久久久福利| 亚洲美女自拍视频| 国产精品久久久一区| 69久久夜色精品国产69乱青草| 亚洲最大成人免费视频| 8090成年在线看片午夜| 欧美日韩中文字幕日韩欧美| 国产一区二区av| 久久在线精品视频| 日韩一二三在线视频播| 国产原创欧美精品| 国产欧亚日韩视频| 国产成人久久久| 91国偷自产一区二区三区的观看方式| 菠萝蜜影院一区二区免费| 成人a在线观看| 色系列之999| 在线电影av不卡网址| 2019中文字幕在线免费观看| 国产视频在线观看一区二区| 日本精品一区二区三区在线播放视频| 久久精品视频在线播放| 亚洲黄色免费三级| 欧美一级电影免费在线观看| 青青草一区二区| 日韩在线观看免费av| 亚洲精品久久久久久久久久久久久| 日韩中文字幕免费视频| 日韩在线观看免费网站| 欧美俄罗斯性视频| 国产精品高清在线| 国产精品白嫩初高中害羞小美女| 欧美最猛性xxxxx亚洲精品| 国内揄拍国内精品少妇国语| 日韩av在线免费| 久久精品国产成人| 日韩av第一页| 久久成人av网站| 欧美区在线播放| 久久久久在线观看| 久久综合电影一区| 国产精品小说在线| 91亚洲国产精品| 久久精品电影一区二区| 久久成人国产精品| 色噜噜狠狠狠综合曰曰曰88av| 日韩欧美中文字幕在线观看| 日韩大陆欧美高清视频区| 欧美成人h版在线观看| 亚洲国产美女久久久久| 久久九九有精品国产23| 国产精品美女网站| 欧美亚洲视频在线看网址| 俺去了亚洲欧美日韩| 久久资源免费视频| 欧美性色19p| 国产精品视频自在线| 亚洲精品97久久| 久久亚洲精品网站| 欧美三级xxx| 亚洲大尺度美女在线| 国产一区二区三区直播精品电影| 91亚洲精品在线观看| 97热在线精品视频在线观看| 俺去了亚洲欧美日韩| 亚洲精品久久7777777| 日韩在线观看免费全| 69视频在线免费观看| 国产日韩欧美在线播放| 青青a在线精品免费观看| 97精品免费视频| 91av视频在线| 清纯唯美日韩制服另类| 在线观看国产欧美| 在线免费观看羞羞视频一区二区| 国产精品高清网站| 欧美亚洲激情在线| 最近2019中文字幕大全第二页| 91手机视频在线观看| 欧美午夜视频一区二区| 日韩精品中文字幕在线播放| 日韩精品中文字幕有码专区| 亚洲精品资源美女情侣酒店| 国产精品高清网站| 欧美午夜精品久久久久久浪潮| 国产亚洲精品久久| 日韩av免费在线| 国产精品久久99久久| 7m精品福利视频导航| 国产视频在线一区二区| 92国产精品久久久久首页| 欧美电影免费观看高清完整| 国产精品情侣自拍| 日本高清视频一区| 中文字幕亚洲自拍| 日韩性生活视频| 国产欧美日韩中文字幕| 国产欧美精品在线播放| 成人深夜直播免费观看| 国产精品一区=区| 超薄丝袜一区二区| 久久久久久91| 亚洲第一在线视频| 日韩黄色高清视频| 欧美有码在线视频| 国产自产女人91一区在线观看| 欧美高跟鞋交xxxxxhd| 日韩专区在线播放| 91免费人成网站在线观看18| 国产一区二中文字幕在线看| 日韩精品免费一线在线观看| 色av吧综合网| 色噜噜国产精品视频一区二区| 欧美午夜美女看片| 自拍亚洲一区欧美另类| 91色在线视频| 亚洲午夜久久久影院| 国产精品美乳一区二区免费| 亚洲国产免费av| 第一福利永久视频精品| 精品成人乱色一区二区| 96国产粉嫩美女| wwwwwwww亚洲| 成人日韩av在线| 成人免费看黄网站| 久久影视电视剧凤归四时歌| 欧美激情国产精品| 日韩成人在线播放| 色阁综合伊人av| 久久夜色精品亚洲噜噜国产mv| 欧美丰满少妇xxxx| 国产丝袜高跟一区| xx视频.9999.com| 日韩在线中文字幕| 日韩一区二区av| 亚洲美女喷白浆| 久久亚洲影音av资源网| 正在播放欧美视频|