ダボラーニング(3)はスプリングブートテストプロジェクトを作成します

springbootテストプロジェクトを作成する

1.ポート番号の並べ替え

事業 ポート番号
動物園の飼育係 2181
dubbo-admin-server 8081
dubbo-admin-ui 8082
user-dubbo-server 8083
order-dubbo-server 8084

2.プロジェクトの構造

dubbo-parent
| ----- interface-dubbo
| ----- user-dubbo-server
| ----- order-dubbo-server

  • interface-dubbo:インターフェイスの作成に使用
  • user-dubbo-server:ユーザーサービスを外部に提供し、このテストでサービスプロバイダーとして機能します
  • order-dubbo-server:外の世界に注文サービスを提供し、このテストで消費者にサービスを提供します
  • order-dubbo-serverとuser-dubbo-serverはどちらもinterface-dubboに依存しています

3.インターフェイスを作成します-ダボ

3.1通常のspringbootプロジェクトを作成します。手順は省略されています

3.2パッケージ
com.jxs.interfacedubbo.userを作成します

3.3インターフェースの作成:UserService

package com.jxs.interfacedubbo.user;

import java.util.List;
import java.util.Map;

public interface UserService {
    
    

    /**
     * @param id
     * 查询用户列表
     * @return
     */
    public List<Map> getUserList(String id);
}

4. user-dubbo-server(プロデューサー)を作成します

4.1通常のspringbootプロジェクトを作成します。手順は省略されています

4.1依存関係の紹介

 <!-- Dubbo Spring Boot Starter -->
 <dependency>
      <groupId>org.apache.dubbo</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
      <version>2.7.7</version>
  </dependency>
  <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>3.5.3-beta</version>
  </dependency>
  <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-framework</artifactId>
      <version>5.1.0</version>
  </dependency>
  <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-recipes</artifactId>
      <version>5.1.0</version>
  </dependency>

4.3サービスの上位バージョンを作成するに@ DubboServiceアノテーションをお勧めします

package com.jxs.userdubboserver.service;

import com.jxs.interfacedubbo.user.UserService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@DubboService
@Service
public class UserServiceImpl implements UserService {
    
    

    /**
     * @param id 查询用户列表
     * @return
     */
    @Override
    public List<Map> getUserList(String id) {
    
    
        List<Map> returnList = new ArrayList<>();

        Map<String,Object> item = new HashMap<>();
        item.put("id",id);
        item.put("name","zhangsan");
        item.put("password","123456");
        returnList.add(item);
        return returnList;
    }
}

4.4構成ファイルを変更する

server.port=8083
#指定当前服务名
dubbo.application.name=user-provider

# 配置注册中心 zookeeper
dubbo.registry.address=zookeeper://127.0.0.1:2181

# <!-- 用dubbo协议在20880端口暴露服务 -->
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

dubbo.monitor.protocol=registry

4.5サービス開始

dubbo-adminに登録があるかどうかを確認します
ここに画像の説明を挿入

5. order-dubbo-server(コンシューマー)を作成します

5.1通常のspringbootプロジェクトを作成します。手順は省略されています

5.2依存関係の紹介

 <!-- Dubbo Spring Boot Starter -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.5.3-beta</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>5.1.0</version>
        </dependency>

5.3ダボを起動し、スキャン注釈を構成します

@SpringBootApplication
@DubboComponentScan
@EnableDubbo
public class OrderDubboServerApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(OrderDubboServerApplication.class, args);
    }

}

5.4テストを呼び出すためのコントローラークラスを追加する

@Controller
@RequestMapping("/order")
public class OrderController {
    
    

    @Autowired
    private OrderService orderService;

    @ResponseBody
    @GetMapping("/getUserInfo")
    public List<Map> getUserInfo(@RequestParam("id") String id) {
    
    
        return orderService.getUserInfo(id);
    }

}

5.5新しいサービス実装クラス

@Service
public class OrderServiceImpl implements OrderService {
    
    

    /**
     * 服务消费
     */
    @DubboReference
    private UserService userService;

    @Override
    public List<Map> getUserInfo(String id) {
    
    
        return userService.getUserList(id);
    }
}

5.6構成ファイルの変更

#服务端口号
server.port=8084

dubbo.application.name=order-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.consumer.timeout=3000

5.7サービスの開始
ここに画像の説明を挿入

6.テスト

6.1访问http:// localhost:8084 / order / getUserInfo?id = 1

戻り値
[{"password": "123456"、 "name": "zhangsan"、 "id": "1"}]

おすすめ

転載: blog.csdn.net/jinian2016/article/details/109558287