對spring的理解!
點擊上方藍(lán)色字體,選擇“標(biāo)星公眾號”
優(yōu)質(zhì)文章,第一時間送達(dá)
? 作者?|??孤獨的車手
來源 |? urlify.cn/7RNFBj
1、Spring實現(xiàn)了工廠模式的工廠類,這個類名為BeanFactory(接口),
在程序中通常用他的子類ApplicationContext。
Spring相當(dāng)于一個大的工廠類,在其配置文件中通過元素配置用于
創(chuàng)建實例對象的類名和實例對象的屬性。
工廠模式是一種生產(chǎn)對象型的設(shè)計模式,有了工廠模式后,當(dāng)需要某個類的
對象時,就不再需要new指定的類,而是調(diào)用工廠中的方法即可。也就不需要
關(guān)心對象的創(chuàng)建過程。甚至有時候也許你需要的對象只要是某種大分類的類型
就可以了,而不必是某個指定的類型。不會過渡依賴某個類,這些類都是
易于被替換的,以提高整個項目的可維護性。
2、Spring提供了對IOC(控制反轉(zhuǎn))良好支持,IOC也是一種編程思想,
是一種架構(gòu)藝術(shù),利用這種思想可以很好地實現(xiàn)模塊之間的解耦。
IOC就是對對象的創(chuàng)建、維護、銷毀等生命周期的控制,這個過程一般是
由我們的程序去主動控制。
DI也是IOC的重要實現(xiàn)。一個對象的創(chuàng)建往往會涉及到其他對象的創(chuàng)建,
這就是依賴。IOC機制既然負(fù)責(zé)了對象的創(chuàng)建,
那么這個依賴關(guān)系也就必須由IOC容器負(fù)責(zé)起來。
負(fù)責(zé)的方式就是DI——依賴注入,通過將依賴關(guān)系寫入配置文件,
然后在創(chuàng)建有依賴關(guān)系的對象時,由IOC容器注入依賴的對象。
如在創(chuàng)建A時,檢查到有依賴關(guān)系,IOC容器就把A依賴的對象B
創(chuàng)建后注入到A中(組裝,通過反射機制實現(xiàn)),然后把A返回給對象請求者,完成工作。
3、Spring提供了對AOP技術(shù)的良好封裝,AOP稱為面向切面編程,
就是系統(tǒng)中有很多各不相干的類的方法,
在這些眾多方法中要加入某種系統(tǒng)功能的代碼,
如加入日志,權(quán)限判斷,異常處理,這種應(yīng)用稱為AOP。
實現(xiàn)AOP功能采用的是代理技術(shù),客戶端程序不再調(diào)用目標(biāo),
而調(diào)用代理類,代理類與目標(biāo)類對外具有相同的方法聲明。
可以用兩種方式實現(xiàn)相同的方法聲明,一是實現(xiàn)相同的接口,
二是作為目標(biāo)的子類。在JDK中采用Proxy類,產(chǎn)生動態(tài)代理的
方式為某個接口生成實現(xiàn)類,如果要為某個類生成子類,則采用CGLIB。
系統(tǒng)功能的代理以Advice對象進行提供,要創(chuàng)建出代理對象,
至少需要目標(biāo)類和Advice類。Spring提供了這種支持,
只需要在Spring配置文件中配置這兩個元素即可實現(xiàn)代理和AOP功能。
粉絲福利:Java從入門到入土學(xué)習(xí)路線圖
???

?長按上方微信二維碼?2 秒
感謝點贊支持下哈?
