小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

輸入?yún)?shù)能動態(tài)調(diào)決定調(diào)用哪個實現(xiàn)類 spring的一個特性

 筑心wup 2014-09-30

今天做公司的以前項目的時候發(fā)現(xiàn)項目中有個特別好的東西,記錄下來,分享一下

發(fā)現(xiàn)spring有個這樣的功能,我也不知道這個是東西應(yīng)該怎么稱呼,就是通過輸入?yún)?shù),動態(tài)決定調(diào)用接口的實現(xiàn)類。簡單理解就是在spring配置文件定義若干個參數(shù),然后,定義同樣多的實現(xiàn)類實現(xiàn)同一個接口,在接口調(diào)用方法中,通過輸入?yún)?shù),就能動態(tài)決定接口調(diào)用具體哪個實現(xiàn)類。這樣的好處就是對外發(fā)布接口時,接口通過參數(shù)能動態(tài)的調(diào)用某個服務(wù)。如果你注重于系統(tǒng)的可擴展性,這個方法確實是個好方法,我重新建了個工程,用來更加簡明的理解這個實現(xiàn)過程。

 

工程結(jié)構(gòu)如圖:myeclipse工程

 

image

 

首先看spring配置文件,定義了三個bean,其中myService,myService2是接口MyService的實現(xiàn)類

 

image

 

其中MyServiceMg中定義了一個map,在spring加載的時候會把配置文件里的這個map動態(tài)的加載到 mappingServices里去,看MyServiceMy類

 

image

 

在這個handle方法里就是根據(jù)參數(shù)來決定MyService動態(tài)調(diào)用的實現(xiàn)類

 

看測試結(jié)果就明白了

 

image

三個測試結(jié)果出來了,第一個和第二個參數(shù)都在配置文件里有配置,所以能動態(tài)調(diào)用相應(yīng)的實現(xiàn)類來實現(xiàn),第三個沒有配置,所以拋出異常,怎么樣,這個東西是不是有點意思了,能動態(tài)調(diào)用具體的實現(xiàn)類,我想想以后肯定很多地方能夠用到

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多