最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring?boot配置dubbo方式(properties)

 更新時(shí)間:2023年01月03日 08:53:13   作者:茁壯成長(zhǎng)的凌大大  
這篇文章主要介紹了spring?boot配置dubbo方式(properties),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

dubbo和zookeeper配合使用,具體的它們之間的配置這里不說了。

spring boot與dubbo配置有兩種方式

1)spring boot在自己的配置文件application.properties 配置dubbo。(本篇主要說這個(gè))

2)spring boot結(jié)合傳統(tǒng)spring dubbo配置文件xml形式。(請(qǐng)看下一篇文章)

本篇主要說在自己配置文件里配置dubbo的步驟

1) dubbo接口發(fā)布者配置

1.首先需要引入如下依賴:

 <!--  Spring Boot Dubbo 依賴-->
<dependency>
  <groupId>io.dubbo.springboot</groupId>
  <artifactId>spring-boot-starter-dubbo</artifactId>
  <version>1.0.0</version>
</dependency> 

2.在application.properties 文件里配置如下內(nèi)容:

#dubbo提供者的別名,只是個(gè)標(biāo)識(shí)
spring.dubbo.application.name=provider
#zk地址
spring.dubbo.registry.address=zookeeper://192.168.1.160:2181
#dubbo協(xié)議
spring.dubbo.protocol.name=dubbo
#duboo端口號(hào)
spring.dubbo.protocol.port=20880
#這是你要發(fā)布到dubbo的接口所在包位置
spring.dubbo.scan=test.spring.dubboService

3.創(chuàng)建一個(gè)要發(fā)布的dubbo接口和其實(shí)現(xiàn)類,具體如下:

package test.spring.dubboService;
public interface TestDubboService {
    public String getName(String name);         
}
package test.spring.dubboService.impl;

import com.alibaba.dubbo.config.annotation.Service;
import test.spring.dubboService.TestDubboService;
@Service
public class TestDubboServiceImpl implements TestDubboService {
    @Override
    public String getName(String name) {
        // TODO Auto-generated method stub
        return "姓名:"+name;
    }
}

接口上什么都不加,但是其實(shí)現(xiàn)類上要加上一個(gè)注解@Service 注意該注解是com.alibaba.dubbo.config.annotation.Service 如果引入錯(cuò)誤,發(fā)布也不會(huì)成功的。

4.如果發(fā)布的接口需要加入版本號(hào),就可以寫為這樣@Service(version="1.0.0.1")

具體的包位置接口請(qǐng)看下圖:

我在前幾篇里說過,spring boot默認(rèn)掃描是從啟動(dòng)類開始依次向下級(jí)包掃描,如果被調(diào)用方在調(diào)用的時(shí)候還沒有初始化,就肯定會(huì)找不到的,上圖的接口為什么會(huì)放在實(shí)現(xiàn)類的上層,應(yīng)該就能理解了吧。   

到此配置dubbo的發(fā)布方就完成了,直接運(yùn)行啟動(dòng)類,查看dubbo接口的發(fā)布情況。如下:

2) dubbo接口消費(fèi)者配置

1、首先依然要引入spring boot的依賴:

 <!--  Spring Boot Dubbo 依賴-->
<dependency>
  <groupId>io.dubbo.springboot</groupId>
  <artifactId>spring-boot-starter-dubbo</artifactId>
  <version>1.0.0</version>
</dependency> 

2.在application.properties 文件里填些dubbo的配置:

spring.dubbo.application.name=consumer-1
#zk地址
spring.dubbo.registry.address=zookeeper://192.168.1.160:2181
#dubbo協(xié)議
spring.dubbo.protocol.name=dubbo
#duboo端口號(hào)
spring.dubbo.protocol.port=20880
#這是要掃描使用的dubbo接口所在包位置
spring.dubbo.scan=test.spring.dubboService

3.由于消費(fèi)者和發(fā)布者不在同一項(xiàng)目里,上邊的test.spring.dubboService 包里,已發(fā)布接口TestDubboService 也需要復(fù)制一份到消費(fèi)者這邊,并且包結(jié)構(gòu)都必須與發(fā)布的一樣。

注意上邊,這里我說的復(fù)制,具體在項(xiàng)目開發(fā)里不會(huì)這么干的,比如我們是這樣來做的。

我們是項(xiàng)目里建了三個(gè)項(xiàng)目(springboot-facade、springboot-rest、springboot-service),springboot-facade里放了接口的結(jié)構(gòu),即service和bean,springboot-rest項(xiàng)目和springboot-service項(xiàng)目分別引用springboot-facade項(xiàng)目,將來就算別人來調(diào)用我們的接口,只要引入一下springboot-facade包,配置一下dubbo,就可以了。

當(dāng)然就算webservice那種遠(yuǎn)程調(diào)用,也是需要通過wsdl去生成service結(jié)構(gòu)在消費(fèi)者這邊。

關(guān)于單項(xiàng)目需要拷貝的話,具體請(qǐng)看下圖,主要是提示一下,復(fù)制的接口在項(xiàng)目所處的路徑必須要與發(fā)布的路徑相同:

4.最后在調(diào)用的地方,我是在TestController 引入的接口,在引入的地方需要加一個(gè)注解,該注解為alibaba的 @Reference ,同理如果想加入版本號(hào),則加上version即可,值要與發(fā)布接口的版本號(hào)對(duì)應(yīng)。

例如:@Reference(version="1.0.0.1"),具體如下:

package test.spring.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.dubbo.config.annotation.Reference;
import test.spring.dubboService.TestDubboService;
@RestController
@RequestMapping("/springboot")
public class TestController {
    @Reference
    TestDubboService testDubboService;
    @RequestMapping(value="abc/akf",method=RequestMethod.GET)
    public String abc(String name){  
        return testDubboService.getName(name);
    }
}

5.依次啟動(dòng)dubbo發(fā)布方項(xiàng)目和調(diào)用方項(xiàng)目。

訪問以上controller,如果這么運(yùn)行下來,不出意外的話,就會(huì)報(bào)空指針異常,發(fā)布的這個(gè)接口在調(diào)用方調(diào)不到,修改如下即可。

修改后的項(xiàng)目結(jié)構(gòu),如下:

也就是說,需要把controller的位置放到dubboService下一級(jí),這里就算你在引入的地方加上@Lazy 延遲加載注解也調(diào)用不到,我反正都是調(diào)整包結(jié)構(gòu)解決的空指針異常。

6.再次啟動(dòng)項(xiàng)目,訪問controller,就會(huì)訪問成功的:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JVM類加載器之ClassLoader的使用詳解

    JVM類加載器之ClassLoader的使用詳解

    類加載器負(fù)責(zé)讀取Java字節(jié)代碼,并轉(zhuǎn)換成java.lang.Class類的一個(gè)實(shí)例的代碼模塊。本文主要和大家聊聊JVM類加載器ClassLoader的使用,需要的可以了解一下
    2022-10-10
  • JVM執(zhí)行引擎和垃圾回收要點(diǎn)總結(jié)

    JVM執(zhí)行引擎和垃圾回收要點(diǎn)總結(jié)

    不論是在問題現(xiàn)場(chǎng)還是跳槽面試,我們面對(duì)JVM性能問題,依舊會(huì)束手無辭,它需要你對(duì)Java虛擬機(jī)的實(shí)現(xiàn)和優(yōu)化,有極為深刻的理解。所以我在這里整理了一下 JVM的知識(shí)點(diǎn)。今天說說虛擬機(jī)執(zhí)行引擎和垃圾回收,都是十足的干貨,請(qǐng)各位看官耐心批閱!
    2021-06-06
  • Easycode自動(dòng)化springboot的curd

    Easycode自動(dòng)化springboot的curd

    這篇文章主要介紹了Easycode自動(dòng)化springboot的curd,圍繞主題的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望給對(duì)你有所幫助
    2022-01-01
  • 如何在springboot中實(shí)現(xiàn)頁面的國(guó)際化

    如何在springboot中實(shí)現(xiàn)頁面的國(guó)際化

    今天帶大家學(xué)習(xí)如何在springboot中實(shí)現(xiàn)頁面的國(guó)際化,文中有非常詳細(xì)的圖文解說及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Java泛型extends及super區(qū)別實(shí)例解析

    Java泛型extends及super區(qū)別實(shí)例解析

    這篇文章主要介紹了Java泛型extends及super區(qū)別實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的實(shí)例代碼

    Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的實(shí)例代碼

    本文主要介紹了Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring中@Autowired注解的原理詳解

    Spring中@Autowired注解的原理詳解

    這篇文章主要介紹了Spring中@Autowired注解的原理詳解,對(duì)于spring配置一個(gè)bean時(shí),如果需要給該bean提供一些初始化參數(shù),則需要通過依賴注入方式,所謂的依賴注入就是通過spring將bean所需要的一些參數(shù)傳遞到bean實(shí)例對(duì)象的過程,需要的朋友可以參考下
    2023-11-11
  • Spring Cloud Gateway 緩存區(qū)異常問題及解決方案

    Spring Cloud Gateway 緩存區(qū)異常問題及解決方案

    最近在測(cè)試環(huán)境spring cloud gateway突然出現(xiàn)了異常,接下來通過本文給大家介紹Spring Cloud Gateway 緩存區(qū)異常問題解決方案,需要的朋友可以參考下
    2024-06-06
  • Java如何獲取主機(jī)的基本信息詳解

    Java如何獲取主機(jī)的基本信息詳解

    最近遇到一個(gè)工作需求,上網(wǎng)查了一下怎樣在Java中獲取本機(jī)的ip和主機(jī)名,所以下面這篇文章主要給大家介紹了關(guān)于Java如何獲取主機(jī)的基本信息,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • Java調(diào)用JavaScript實(shí)現(xiàn)字符串計(jì)算器代碼示例

    Java調(diào)用JavaScript實(shí)現(xiàn)字符串計(jì)算器代碼示例

    這篇文章主要介紹了Java調(diào)用JavaScript實(shí)現(xiàn)字符串計(jì)算器代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-12-12

最新評(píng)論

当雄县| 当阳市| 故城县| 娄底市| 徐汇区| 湖北省| 确山县| 新泰市| 彭水| 农安县| 饶阳县| 陆良县| 泸溪县| 修武县| 准格尔旗| 手游| 开阳县| 南乐县| 翼城县| 福泉市| 尼木县| 怀化市| 高安市| 定襄县| 肇源县| 普定县| 海林市| 三河市| 文登市| 郴州市| 靖远县| 禹州市| 河津市| 大化| 湖北省| 五大连池市| 郓城县| 昌邑市| 天门市| 图片| 通城县|