資源描述:
《《大框架原理》word版》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、ooa(objectorientedanalysis)面向?qū)ο蠓治鰋od(objectorienteddesign)面向?qū)ο笤O(shè)計(jì)Oop面向?qū)ο缶幊蘏pringjavabean的生命周期配置初始化調(diào)用銷毀Spring1、spring原理2、IoC概念:控制權(quán)由對象本身轉(zhuǎn)向容器:由容器根據(jù)配置文件區(qū)創(chuàng)建實(shí)例并創(chuàng)建各個(gè)實(shí)例之間依賴關(guān)系。spring的最大作用ioc/di,將類與類的依賴關(guān)系寫在配置文件中,程序在運(yùn)行時(shí)根據(jù)配置文件動態(tài)加載依賴的類,降低的類與類之間的藕合度。它的原理是在applicationCont
2、ext.xml加入bean標(biāo)記,在bean標(biāo)記中通過class屬性說明具體類名、通過property標(biāo)簽說明該類的屬性名、通過constructor-args說明構(gòu)造子的參數(shù)。其一切都是返射,當(dāng)通過applicationContext.getBean(“id名稱”)得到一個(gè)類實(shí)例時(shí),就是以bean標(biāo)簽的類名、屬性名、構(gòu)造子的參數(shù)為準(zhǔn),通過反射實(shí)例對象,喚起對象的set方法設(shè)置屬性值、通過構(gòu)造子的newInstance實(shí)例化得到對象。正因?yàn)閟pring一切都是反射,反射比直接調(diào)用的處理速度慢,所以這也是spr
3、ing的一個(gè)問題。spring第二大作用就是aop,其機(jī)理來自于代理模式,代理模式有三個(gè)角色分別是通用接口、代理、真實(shí)對象代理、真實(shí)對象實(shí)現(xiàn)的是同一接口,將真實(shí)對象作為代理的一個(gè)屬性,向客戶端公開的是代理,當(dāng)客戶端調(diào)用代理的方法時(shí),代理找到真實(shí)對象,調(diào)用真實(shí)對象方法,在調(diào)用之前之后提供相關(guān)的服務(wù),如事務(wù)、安全、日志。其名詞分別是代理、真實(shí)對象、裝備、關(guān)切點(diǎn)、連接點(diǎn)。2、動態(tài)代理:不用寫代理類,虛擬機(jī)根據(jù)真實(shí)對象實(shí)現(xiàn)的接口產(chǎn)生一個(gè)類,通過類實(shí)例化一個(gè)動態(tài)代理,在實(shí)例化動態(tài)代理時(shí)將真實(shí)對象及裝備注入到動態(tài)代理中
4、,向客戶端公開的是動態(tài)代理,當(dāng)客戶端調(diào)用動態(tài)代理方法時(shí),動態(tài)代理根據(jù)類的返射得到真實(shí)對象的Method,調(diào)用裝備的invoke方法,將動態(tài)代理、Method、方法參數(shù)傳與裝備的invoke方法,invoke方法在喚起method方法前或后做一些處理。1、產(chǎn)生動態(tài)代理的類:java.lang.refect.Proxy2、裝備必須實(shí)現(xiàn)InvocationHandler接口實(shí)現(xiàn)invoke方法3、反射什么是類的返射?通過類說明可以得到類的父類、實(shí)現(xiàn)的接口、內(nèi)部類、構(gòu)造函數(shù)、方法、屬性并可以根據(jù)構(gòu)造器實(shí)例化一個(gè)對象
5、,喚起一個(gè)方法,取屬性值,改屬性值。如何得到一個(gè)類說明?Classcls=類.class;Classcls=對象.getClass();Class.forName(“類路徑”);如何得到一個(gè)方法并喚起它?Classcls=類.class;Constructorcons=cls.getConstructor(newClass[]{String.class});Objectobj=cons.newInstance(newObject[]{“aaa”});Methodmethod=cls.getMethod(“方
6、法名”,newClass[]{String.class,Integer.class});method.invoke(obj,newObject[]{“aa”,newInteger(1)});4、spring的三種注入方式是什么?setterinterfaceconstructor5、spring的核心接口及核類配置文件是什么?FactoryBean:工廠bean主要實(shí)現(xiàn)ioc/diApplicationContextac=newFileXmlApplicationContext(“applicationCo
7、ntext.xml”);Objectobj=ac.getBean(“id值”);applicationContext.xmlStruts2一個(gè)請求在Struts2框架中的處理大概分為以下幾個(gè)步驟:1客戶端初始化一個(gè)指向Servlet容器(例如Tomcat)的請求;2這個(gè)請求經(jīng)過一系列的過濾器(Filter)(這些過濾器中有一個(gè)叫做ActionContextCleanUp的可選過濾器,這個(gè)過濾器對于Struts2和其他框架的集成很有幫助,例如:SiteMeshPlugin)3接著FilterDispatche
8、r被調(diào)用,F(xiàn)ilterDispatcher詢問ActionMapper來決定這個(gè)請是否需要調(diào)用某個(gè)Action4如果ActionMapper決定需要調(diào)用某個(gè)Action,F(xiàn)ilterDispatcher把請求的處理交給ActionProxy5ActionProxy通過ConfigurationManager詢問框架的配置文件,找到需要調(diào)用的Action類6ActionProxy創(chuàng)建一個(gè)ActionInvocati