首页 > 编程语言 > 详细

Spring Boot集成dubbo简易配置

时间:2021-05-17 13:38:49      阅读:9      评论:0      收藏:0      [点我收藏+]

Spring Boot集成dubbo

准备工作

  1. 部署zookeeper作为dubbo注册中心
  2. 新建三个项目模块interface、provider、consumer(官方推荐最佳实践)

模块部分代码

interface

将需要暴露的接口写在这里。实体类一定要序列化

public interface TestService {

    /**
     * 测试
     * @param name
     * @param age
     * @return
     */
    User test(String name, Integer age);
}

public class User implements Serializable {

    private String name;

    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

provider

1.依赖

        <!-- duboo相关依赖-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>2.7.1</version>
            <type>pom</type>
        </dependency>

        <!-- 依赖暴露接口-->
        <dependency>
            <groupId>com.dubbo.demo</groupId>
            <artifactId>dubbo-interface</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

2.yml配置

server:
  port: 8081
  servlet:
    context-path: /

dubbo:
  application:            #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
    name: dubbo-provider
  registry:                 #注册中心配置,用于配置连接注册中心相关信息。
    address: zookeeper://127.0.0.1:2181
  metadata-report:
    address: zookeeper://127.0.0.1:2181
  protocol:     #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
    name: dubbo
    port: 20880

3.启动类新增@EnableDubbo注解

@SpringBootApplication
@EnableDubbo(scanBasePackages="com.example.demo.service.**")
public class DubboProviderApplication {

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

}

4.实现接口中的方法

@Component
@Service //使用 org.apache.dubbo下的注解
public class TestServiceImpl implements TestService {

    @Override
    public User test(String name, Integer age) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        return user;
    }
}

consumer

1.依赖

        <!-- duboo相关依赖-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>2.7.1</version>
            <type>pom</type>
        </dependency>

        <!-- 依赖暴露接口-->
        <dependency>
            <groupId>com.dubbo.demo</groupId>
            <artifactId>dubbo-interface</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

2.yml配置

server:
  port: 8080
  servlet:
    context-path: /

dubbo:
  application:            #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
    name: dubbo-provider
  registry:                 #注册中心配置,用于配置连接注册中心相关信息。
    address: zookeeper://127.0.0.1:2181
  metadata-report:
    address: zookeeper://127.0.0.1:2181
  protocol:     #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
    name: dubbo
    port: 20880

3.启动类新增@EnableDubbo注解

@SpringBootApplication
@EnableDubbo(scanBasePackages="com.example.demo.web")
public class DubboConsumerApplication {

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

}

4.调用dubbo服务

@RestController
public class TestController {


    @Reference(check=false,interfaceClass=TestService.class)
    private TestService testService;

    @PostMapping("test")
    public User test(String name, Integer age) {
        return testService.test(name, age);
    }
}

Spring Boot集成dubbo简易配置

原文:https://www.cnblogs.com/dylijq/p/14776142.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!