Dubbo应用开发之基于springboot方式使用Dubbo

41 阅读1分钟

Dubbo应用开发之基于springboot方式使用Dubbo

构建springboot项目应用dubbo-boot-prod

这里需要主要springboot的版本要对应jdk版本然后还需要对应dubbo的版本,不太清楚可以直接参考我的版本

引入依赖

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.12</version>
        <relativePath/>
    </parent>

    <artifactId>dubbo-boot-prod</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.example</groupId>
        <artifactId>dubbo-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>
</project>

注意这里是会依赖之前开发的dubbo-api模块的,可以参考上一章节内容

application.yml配置

这一块相对比较简单,就是将spring的配置文件更换成springboot配置文件即可

application.yml

dubbo:
  protocol:
    name: dubbo
    port: -1
spring:
  application:
    name: dubbo-boot-prod

实现service方法

UserServiceImpl.java

package org.example.service;

import org.apache.dubbo.config.annotation.DubboService;
//这里记得加上
@DubboService
public class UserServiceImpl implements UserService {
    @Override
    public String login(String name, String password) {
        System.out.println("name = " + name);
        System.out.println("password = " + password);
        return "login ok!";
    }
}

启动prod应用

在这里插入图片描述

构建springboot项目应用dubbo-boot-consumer

对应的这一块比较简单,只需要创建一个springboot应用,然后直接在测试类中开始进行RPC调用即可

TestMain.java

import org.apache.dubbo.config.annotation.DubboReference;
import org.example.BootConsumerMain;
import org.example.service.UserService;
import org.springframework.boot.test.context.SpringBootTest;
import org.junit.jupiter.api.Test;
@SpringBootTest(classes = BootConsumerMain.class)
public class TestMain {
    //这里对应我们上门暴露的服务
    @DubboReference(url = "dubbo://222.20.83.141:20880/org.example.service.UserService")
    private UserService userService;
    @Test
    public void test(){
        String login = userService.login("admin", "123456");
        System.out.println(login);
    }
}

测试

在这里插入图片描述

最终结果显示调用成功

在这里插入图片描述

prod服务也对应打印出来了传入的参数