Java 語言定義服務(wù)

2022-04-15 10:34 更新

示例使用 Spring XML 配置方式進行演示。

除此之外,Dubbo Java 還提供了包括注解、API、配置文件、spring boot等多種啟動與接入方式,具體可參見配置章節(jié)具體描述。

下載示例代碼

示例代碼在 dubbo-samples 中

  1. 下載源碼
$ git clone -b master https://github.com/apache/dubbo-samples.git
  1. 進入示例目錄
$ cd dubbo-samples/dubbo-samples-basic

快速運行示例

在 dubbo-samples-basic 目錄

  1. 編譯 Provider
$ mvn clean package -Pprovider
  1. 運行 Provider
$ java -jar ./target/provider.jar 
  1. 編譯 Consumer
$ mvn clean package -Pconsumer
  1. 運行 consumer
$ java -jar ./target/consumer.jar 

詳細(xì)解釋

定義服務(wù)接口

DemoService.java

package org.apache.dubbo.samples.basic.api;

public interface DemoService {
    String sayHello(String name);
}

在服務(wù)提供方實現(xiàn)接口

DemoServiceImpl.java

public class DemoServiceImpl implements DemoService {
    @Override
    public String sayHello(String name) {
        System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] Hello " + name +
                ", request from consumer: " + RpcContext.getContext().getRemoteAddress());
        return "Hello " + name + ", response from provider: " + RpcContext.getContext().getLocalAddress();
    }
}

用 Spring 配置聲明暴露服務(wù)

provider.xml:

<bean id="demoService" class="org.apache.dubbo.samples.basic.impl.DemoServiceImpl"/>

<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService" ref="demoService"/>

服務(wù)消費者

引用遠(yuǎn)程服務(wù)

consumer.xml:

<dubbo:reference id="demoService" check="true" interface="org.apache.dubbo.samples.basic.api.DemoService"/>

加載Spring配置,并調(diào)用遠(yuǎn)程服務(wù)

Consumer.java

public static void main(String[] args) {
    ...
    DemoService demoService = (DemoService) context.getBean("demoService");
    String hello = demoService.sayHello("world");
    System.out.println(hello);
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號