欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring?boot配置dubbo方式(properties)

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

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

spring boot與dubbo配置有兩種方式

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

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

本篇主要說在自己配置文件里配置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 文件里配置如下內容:

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

3.創(chuàng)建一個要發(fā)布的dubbo接口和其實現(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;
    }
}

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

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

具體的包位置接口請看下圖:

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

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

2) dubbo接口消費者配置

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端口號
spring.dubbo.protocol.port=20880
#這是要掃描使用的dubbo接口所在包位置
spring.dubbo.scan=test.spring.dubboService

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

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

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

當然就算webservice那種遠程調用,也是需要通過wsdl去生成service結構在消費者這邊。

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

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

例如:@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.依次啟動dubbo發(fā)布方項目和調用方項目。

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

修改后的項目結構,如下:

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

6.再次啟動項目,訪問controller,就會訪問成功的:

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringCloud集成Hystrix熔斷過程分步分解

    SpringCloud集成Hystrix熔斷過程分步分解

    通過hystrix可以解決雪崩效應問題,它提供了資源隔離、降級機制、融斷、緩存等功能。接下來通過本文給大家分享SpringCloud集成Hystrix熔斷,感興趣的朋友一起看看吧
    2022-09-09
  • Java 詳解如何獲取網絡接口信息

    Java 詳解如何獲取網絡接口信息

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實踐中才能獲得能力的提升,本篇文章手把手帶你用Java獲取網絡接口的信息,大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • 解決Nacos集群啟動失敗:java版本問題

    解決Nacos集群啟動失敗:java版本問題

    這篇文章主要介紹了解決Nacos集群啟動失敗:java版本問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Spring Boot自動注入的原理分析

    Spring Boot自動注入的原理分析

    這篇文章主要給大家分析介紹了關于Spring Boot自動注入的原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Spring Boot自具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • IDEA?2019.2.3破解激活教程(親測有效)

    IDEA?2019.2.3破解激活教程(親測有效)

    這篇文章主要介紹了IDEA?2019.2.3破解激活教程(親測有效),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • java中throws實例用法詳解

    java中throws實例用法詳解

    在本篇文章里小編給大家分享了一篇關于java中throws實例用法詳解,有興趣的朋友們可以參考學習下。
    2021-01-01
  • Java泛型 <T> T、 T、<T>的用法小結

    Java泛型 <T> T、 T、<T>的用法小結

    T在Java泛型中,被稱作類型變量, 有的方法返回值是<T> T,有的是T,區(qū)別在哪里,本文主要介紹了Java泛型 <T> T、 T、<T>的用法小結,具有一定的參考價值,感興趣的可以了解下
    2023-12-12
  • Java 讀取excel 文件流代碼實例

    Java 讀取excel 文件流代碼實例

    這篇文章主要介紹了Java 讀取excel 文件流代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Springboot實現(xiàn)過濾器的兩種方式

    Springboot實現(xiàn)過濾器的兩種方式

    今天通過本文給大家分享Springboot實現(xiàn)過濾器的兩種方式,第一種是spring容器注冊filter,第二種方式是通過@WebFilter 注解來配置,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-10-10
  • Spring Security OAuth 自定義授權方式實現(xiàn)手機驗證碼

    Spring Security OAuth 自定義授權方式實現(xiàn)手機驗證碼

    這篇文章主要介紹了Spring Security OAuth 自定義授權方式實現(xiàn)手機驗證碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02

最新評論