摘要:下面是實(shí)現(xiàn)依賴查找的小。首先創(chuàng)建一個(gè)接口用來進(jìn)行拓展,名字為,如下圖加下來,創(chuàng)建兩個(gè)接口的實(shí)現(xiàn)類,和如下圖適用名字進(jìn)行注入,稍后根據(jù)注入的名字進(jìn)行依賴查找,分別在兩個(gè)實(shí)現(xiàn)方法中打印一段文字,進(jìn)行驗(yàn)證。
公司新開發(fā)的服務(wù)需要調(diào)用其他公司的接口,但是給APP提供的接口是同一個(gè),需要后端去自己判斷使用哪個(gè)service。
可以想到,最簡(jiǎn)單的辦法就是if else根據(jù)字段去選個(gè)方法執(zhí)行,但是,這樣項(xiàng)目的拓展性不夠高。
想到了spring的依賴查找。下面是spring實(shí)現(xiàn)依賴查找的小demo。
首先創(chuàng)建一個(gè)service接口用來進(jìn)行拓展,名字為IDependService,如下圖:
加下來,創(chuàng)建兩個(gè)IDependService接口的實(shí)現(xiàn)類,DependService1和DependService2如下圖:
適用名字進(jìn)行注入,稍后根據(jù)注入的名字進(jìn)行依賴查找,分別在兩個(gè)實(shí)現(xiàn)方法中打印一段文字,進(jìn)行驗(yàn)證。
最后,創(chuàng)建一個(gè)controller進(jìn)行調(diào)用。如下圖:
我們將IDependService注入map中,這個(gè)key也就是我們剛才注入的service名字。我們可以根據(jù)key獲取指定的service。
然后,通過多臺(tái)調(diào)用相應(yīng)的實(shí)現(xiàn)方法。這樣子,是不是拓展性強(qiáng)了很多呢!不用再去很low的if else了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72292.html
摘要:利用這種方式就將或者和業(yè)務(wù)對(duì)象的依賴關(guān)系用來進(jìn)行管理,并且不用在中硬編碼要引用的對(duì)象名字。配置的的配置完成。推薦使用,應(yīng)為配置上更簡(jiǎn)單。 在使用spring容器的web應(yīng)用中,業(yè)務(wù)對(duì)象間的依賴關(guān)系都可以用context.xml文件來配置,并且由spring容器來負(fù)責(zé)依賴對(duì)象 的創(chuàng)建。如果要在filter或者servlet中使用spring容器管理業(yè)務(wù)對(duì)象,通常需要使用WebApplic...
摘要:之旅簡(jiǎn)化開發(fā)的使命簡(jiǎn)化開發(fā)為了降低開發(fā)的復(fù)雜性,采取如下關(guān)鍵策略基于的輕量級(jí)和最小侵入性編程通過依賴注入和面向接口實(shí)現(xiàn)松耦合基于切面和慣例進(jìn)行聲明式編程通過切面和模版減少樣式代碼依賴注入耦合性具有兩面性一方面,緊密耦合的代碼難以測(cè)試難以復(fù) Spring之旅 簡(jiǎn)化Java開發(fā) Spring的使命:簡(jiǎn)化Java開發(fā) 為了降低Java開發(fā)的復(fù)雜性,采取如下關(guān)鍵策略:基于POJO的輕量級(jí)和最...
摘要:例如資源的獲取,支持多種消息例如的支持,對(duì)多了工具級(jí)別的支持等待。最上面的知道吧我就不講了。生命周期事件回調(diào)等。他支持不同信息源頭,支持工具類,支持層級(jí)容器,支持訪問文件資源,支持事件發(fā)布通知,支持接口回調(diào)等等。 廣義的 IOC IoC(Inversion of Control) 控制反轉(zhuǎn),即不用打電話過來,我們會(huì)打給你。 兩種實(shí)現(xiàn): 依賴查找(DL)和依賴注入(DI)。 IOC 和...
摘要:使用的好處知乎的回答不用自己組裝,拿來就用。統(tǒng)一配置,便于修改。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡(jiǎn)單啦 單例模式你會(huì)幾種寫法? 工廠模式理解了沒有? 在刷Spring書籍的時(shí)候花了點(diǎn)時(shí)間去學(xué)習(xí)了單例模式和工廠模式,總的來說還是非常值得的! 本來想的是刷完《Spring 實(shí)戰(zhàn) (第4版)》和《精通Spring4.x 企業(yè)應(yīng)用開發(fā)實(shí)戰(zhàn)》...
摘要:介紹什么是在軟件業(yè),為的縮寫,意為面向切面編程,通過預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。切面是切入點(diǎn)和通知引介的結(jié)合。切面類權(quán)限校驗(yàn)。。。 1. AOP 1.1 AOP介紹 1.1.1 什么是AOP 在軟件業(yè),AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)...
閱讀 2985·2021-10-12 10:17
閱讀 1589·2021-09-01 11:38
閱讀 1081·2019-08-30 15:44
閱讀 3479·2019-08-26 18:36
閱讀 507·2019-08-26 13:25
閱讀 1884·2019-08-26 10:29
閱讀 2835·2019-08-23 15:58
閱讀 759·2019-08-23 12:59