使用spring boot構(gòu)建的客戶端項(xiàng)目wolf調(diào)用dubbo服務(wù)

lion:dubbo服務(wù)的提供方,即服務(wù)端

項(xiàng)目地址:https://github.com/BruceZhangXL/lion

wolf:dubbo服務(wù)的調(diào)用方,即客戶端
項(xiàng)目地址:https://github.com/BruceZhangXL/wolf

wolf項(xiàng)目也是基于spring boot搭建的,結(jié)構(gòu)和lion類似,下面我主要說(shuō)下,對(duì)dubbo服務(wù)的調(diào)用,作為客戶端這一側(cè),要做哪些配置。

1、在wolf-rpc模塊依賴服務(wù)端的一些接口jar包,主要是lion-domain和lion-export
2、在wolf-rpc中增加dubbo調(diào)用側(cè)的一些配置spring-dubbo.xml,spring-goods-consumer.xml
其中spring-dubbo.xml文件中主要放置的是對(duì)注冊(cè)中心的一些參數(shù)配置,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
">
<dubbo:application name="${server.name}"/>
<dubbo:protocol name="dubbo" port="${dubbo.port}" />
<dubbo:provider timeout="3000" threadpool="fixed" threads="1000" accepts="1000" />
<dubbo:registry id="registry" protocol="zookeeper" address="${zookeeper.address}" />
</beans>

spring-goods-consumer.xml中主要是對(duì)遠(yuǎn)端提供側(cè)服務(wù)的配置,內(nèi)容如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
">
<dubbo:reference id="helloService" interface="org.lion.export.HelloService" version="${dubbo.version}" timeout="${dubbo.timeout}"/>
</beans>

3、在service層使用這個(gè)helloService
@Service("itemService")
public class ItemServiceImpl implements ItemService{
@Resource
private ItemDraftMapper itemDraftMapper;

@Resource
private HelloService helloService;

使用@Resource注入該遠(yuǎn)端服務(wù)(實(shí)際上此時(shí)注入的是遠(yuǎn)端服務(wù)的一個(gè)代理類)

4、增加測(cè)試controller

@Controller
@RequestMapping("dubbo")
public class DubboTestController {
@Resource
private ItemService itemService;

@RequestMapping("")
@ResponseBody
public HelloDomain sayHi(String name){
    return itemService.sayHi(name);
}

}

5、修改wolf項(xiàng)目端口為8082,啟動(dòng)項(xiàng)目后測(cè)試


image.png

6、看看duboo-admin上,客戶端是否注入

下圖可以看到客戶端項(xiàng)目wolf已經(jīng)可以看到了。


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容