<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    學習園地

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      3 Posts :: 14 Stories :: 0 Comments :: 0 Trackbacks
    一、 IoC(Inversion of control): 控制反轉(zhuǎn)  
    概念:控制權(quán)由對象本身轉(zhuǎn)向容器;由容器根據(jù)配置文件去創(chuàng)建實例并創(chuàng)建各個實例之間的依賴關(guān)系 
    核心:bean工廠;在Spring中,bean工廠創(chuàng)建的各個實例稱作bean 
     
    內(nèi)部最核心的就是IOC
    動態(tài)注入,讓一個對象的創(chuàng)建不用new了,可以自動的生產(chǎn),這其實就是利用java里的反射 
    反射其實就是在運行時動態(tài)的去創(chuàng)建、調(diào)用對象,Spring就是在運行時,跟xml  Spring的配置 文件來動態(tài)的創(chuàng)建對象,和調(diào)用對象里的方法的 。
     
    二、AOP(Aspect-Oriented Programming): 面向方面編程 
    1、 代理的兩種方式: 
    靜態(tài)代理: 
    ? 針對每個具體類分別編寫代理類; 
    ? 針對一個接口編寫一個代理類; 
    動態(tài)代理: 
    針對一個方面編寫一個InvocationHandler,然后借用JDK反射包中的Proxy類為各種接口動態(tài)生成相應(yīng)的代理類 
    2、 AOP的主要原理:動態(tài)代理 

    另一個核心就是AOP
    這個就是面向切面編程,可以為某一類對象 進行監(jiān)督和控制(也就是在調(diào)用這類對象的具體方法的前后去調(diào)用你指定的 模塊)從而達到對一個模塊擴充的功能。這些都是通過配置類達到的。 
    Spring目的:就是讓對象與對象(模塊與模塊)之間的關(guān)系沒有通過代碼來關(guān)聯(lián),都是通過配置類說明 
    管理的(Spring根據(jù)這些配置 內(nèi)部通過反射去動態(tài)的組裝對象) 
    要記住:Spring是一個容器,凡是在容器里的對象才會有Spring所提供的這些服務(wù)和功能。 
    Spring里用的最經(jīng)典的一個設(shè)計模式就是:模板方法模式。  Spring里的配置是很多的,很難都記住,但是Spring里的精華也無非就是以上的兩點,把以上兩點跟理解了 
    也就基本上掌握了Spring. 

     
    三、spring原理 
                    spring的最大作用ioc/di,將類與類的依賴關(guān)系寫在配置文件中,
                    程序在運行時根據(jù)配置文件動態(tài)加載依賴的類,降低的類與類之間
                    的藕合度。它的原理是在applicationContext.xml加入bean標記,
                    bean標記中通過class屬性說明具體類名、通過property標簽說明
                    該類的屬性名、通過constructor-args說明構(gòu)造子的參數(shù)。其一切都是
                    返射,當通過applicationContext.getBean("id名稱")得到一個類實例時,
                    就是以bean標簽的類名、屬性名、構(gòu)造子的參數(shù)為準,通過反射實例對象,
                    喚起對象的set方法設(shè)置屬性值、通過構(gòu)造子的newInstance實例化得到對象。
                    正因為spring一切都是反射,反射比直接調(diào)用的處理速度慢,所以這也是spring
                    的一個問題。
                    spring第二大作用就是aop,其機理來自于代理模式,代理模式
                    有三個角色分別是通用接口、代理、真實對象
                    代理、真實對象實現(xiàn)的是同一接口,將真實對象作為
                    代理的一個屬性,向客戶端公開的是代理,當客戶端
                    調(diào)用代理的方法時,代理找到真實對象,調(diào)用真實對象
                    方法,在調(diào)用之前之后提供相關(guān)的服務(wù),如事務(wù)、安全、
                    日志。其名詞分別是代理、真實對象、裝備、關(guān)切點、連接點。
     
    四、動態(tài)代理:
    不用寫代理類,虛擬機根據(jù)真實對象實現(xiàn)的接口產(chǎn)生一個類,通過類實例化一個動態(tài)代理,在實例化動態(tài)代理時將真實對象及裝備注入到動態(tài)代理中,向客戶端公開的是動態(tài)代理,當客戶端調(diào)用動態(tài)代理方法時,動態(tài)代理根據(jù)類的返射得到真實對象的Method,調(diào)用裝備的invoke方法,將動態(tài)代理、Method、方法參數(shù)傳與裝備的invoke方法,invoke方法在喚method方法前或后做一些處理。     
                        1、產(chǎn)生動態(tài)代理的類:
                                java.lang.refect.Proxy
                        2、裝備必須實現(xiàn)InvocationHandler接口實現(xiàn)invoke方法
    五、反射:
    什么是類的返射?
    通過類說明可以得到類的父類、實現(xiàn)的接口、內(nèi)部類、構(gòu)造函數(shù)、方法、屬性并可以根據(jù)構(gòu)造器實例化一個對象,喚起一個方法,取屬性值,改屬性值。
    如何得到一個類說明?
      Class cls=.class;
      Class cls=對象.getClass();
      Class.forName("類路徑");
    如何得到一個方法并喚起它?
      Class cls=.class;
       Constructor cons=cls.getConstructor(new Class[]{String.class});
       Object obj=cons.newInstance(new Object[]{"aaa"});
        Method method=cls.getMethod("方法名",new Class[]{String.class,Integer.class});
                            method.invoke(obj,new Object[]{"aa",new Integer(1)}); 
    六、spring的三種注入方式
           setter
           interface
           constructor
    七、spring的核心接口及核類配置文件
            FactoryBean:工廠bean主要實現(xiàn)ioc/di
                   
                    ApplicationContext ac=new FileXmlApplicationContext("applicationContext.xml");
                    Object obj=ac.getBean("id");
                   
                    applicationContext.xml
    posted on 2012-06-13 14:34 丘比特 閱讀(143) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 一色屋成人免费精品网站| 亚洲免费二区三区| 亚洲国产专区一区| 一级毛片正片免费视频手机看 | 99久久99热精品免费观看国产| 亚洲老妈激情一区二区三区| 免费无码黄网站在线看| 亚洲av一综合av一区| 91热成人精品国产免费| 亚洲va在线va天堂va手机| 一二三四影视在线看片免费| 亚洲老熟女五十路老熟女bbw| 女人毛片a级大学毛片免费| 亚洲av无码一区二区三区天堂| 国产男女猛烈无遮档免费视频网站 | 亚洲精品日韩中文字幕久久久| 香蕉97超级碰碰碰免费公| 自拍日韩亚洲一区在线| 国产精品免费视频一区| 国产黄在线观看免费观看不卡| 国产成A人亚洲精V品无码性色| 久久免费国产视频| 亚洲一级片在线播放| 又大又黄又粗又爽的免费视频| 成人a毛片免费视频观看| 亚洲国产精品久久久久婷婷软件| 在线看免费观看AV深夜影院| 色噜噜噜噜亚洲第一| 亚洲精品tv久久久久久久久| 久久午夜免费视频| 一区二区三区免费在线视频 | 免费一区二区三区| 亚洲另类图片另类电影| 男人的天堂亚洲一区二区三区 | 亚洲日韩国产二区无码| 亚洲午夜av影院| 亚洲性线免费观看视频成熟| 免费一区二区无码视频在线播放| 九月丁香婷婷亚洲综合色| 毛片在线看免费版| a毛片免费全部在线播放**|