鍍金池/ 問(wèn)答/Java  網(wǎng)絡(luò)安全/ maven依賴(lài)和dubbo服務(wù)暴露調(diào)用區(qū)別?

maven依賴(lài)和dubbo服務(wù)暴露調(diào)用區(qū)別?

最近用dubbo有個(gè)疑問(wèn),A項(xiàng)目要用B項(xiàng)目的接口方法,在pom文件里配了B項(xiàng)目的依賴(lài),還要加<dubbo:reference interface="..B"> @autowired B 是受誰(shuí)影響注入的?
還有maven pom文件是在哪找到B項(xiàng)目的jar下載到本地資源庫(kù)的?

回答
編輯回答
兔囡囡

dubbo沒(méi)有使用經(jīng)驗(yàn), 但做為RPC框架, 實(shí)際服務(wù)執(zhí)行是在遠(yuǎn)端的, 是不必下載jar到本地的. 知道接口就可以了.A依賴(lài)B, 也不需要B的全部代碼都加到A里, 只要接口就好.

2017年1月12日 13:23
編輯回答
葬憶

一般dubbo會(huì)有服務(wù)提供端服務(wù)調(diào)用端,服務(wù)提供端會(huì)提供接口interface和接口的實(shí)現(xiàn)類(lèi)class,而常見(jiàn)的開(kāi)發(fā)方法都是接口和實(shí)現(xiàn)類(lèi)在不同的項(xiàng)目里面,接口所在的項(xiàng)目一般打包成jar形式,它需要使用Maven安裝到本地倉(cāng)庫(kù)中,實(shí)現(xiàn)類(lèi)打包得看情況,如果是Spring MVC的項(xiàng)目,一般打包成war形式,如果是Spring Boot項(xiàng)目,一般打包成jar形式,我們?cè)谡{(diào)用端調(diào)用的時(shí)候,只需要引入接口打包好的jar包就可以了,只要服務(wù)一啟動(dòng),就回去找實(shí)現(xiàn)類(lèi)提供服務(wù),我們?cè)谡{(diào)用端調(diào)用的也是接口,而不是直接調(diào)用實(shí)現(xiàn)類(lèi)。
至于你所說(shuō)的不明白@Autowired方式,很好解釋?zhuān)耗蔷褪欠?wù)提供端啟動(dòng)后,就會(huì)將實(shí)現(xiàn)類(lèi)對(duì)象提交到zookeeper注冊(cè)中心去,當(dāng)調(diào)用端啟動(dòng)后,就會(huì)根據(jù)你配置的reference標(biāo)簽去注冊(cè)中心查找實(shí)現(xiàn)類(lèi)對(duì)象,從而動(dòng)態(tài)引入到調(diào)用端所在Spring上下文環(huán)境中,這樣就可以@Autowired注入了!
如果有哪里不明白的,可以留言,歡迎采納!

2018年1月14日 17:04