• Springboot整合Dubbo


    一、项目介绍

    1、IDEA创建多模块springboot项目

    springboot-dubbo-api:接口层

    springboot-dubbo-client:服务消费者

    springboot-dubbo-server:服务提供者

    二、springboot-dubbo-server:服务提供者

    1、实现我们在springboot-dubbo-api上定义的接口,创建一个DubboServerServiceImpl类并实现ApiService

    package com.example.dubbo.service.impl;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.example.dubbo.service.ApiService;
    
    @Service(version = "1.0.0")
    public class DubboServerServiceImpl implements ApiService {
    
        @Override
        public String getParm(String parm) {
            return parm;
        }
    }
    

    注意:代码里的@Service注解是com.alibaba.dubbo.config.annotation.Service的。

    2、在resources下创建一个spring-dubbo.xml配置文件。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://code.alibabatech.com/schema/dubbo
           http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    
        <dubbo:application name="provider"/>
        <!-- 注册中心的ip地址 -->
        <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
        <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->
        <dubbo:annotation package="com.example.dubbo.service.impl"/>
    </beans>
    

    3、在ServerApplication.java文件添加

    package com.example.dubbo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ImportResource;
    
    @SpringBootApplication(scanBasePackages = {"com.example.dubbo"})
    @MapperScan("com.example.dubbo.*") //扫描的mapper
    @ImportResource({"classpath:spring-dubbo.xml"})
    public class ServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ServerApplication.class, args);
        }
    
    }
    

    三、springboot-dubbo-client:服务消费者

    1、编写我们的Controller控制类

    package com.example.dubbo.controller;
    
    import com.alibaba.dubbo.config.annotation.Reference;
    import com.example.dubbo.service.ApiService;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class ClientController {
    
        @Reference(version = "1.0.0")
        private ApiService apiService;
    
        @RequestMapping("client")
        public String client(String parm){
            return apiService.getParm(parm);
        }
    }
    

    2、在resources下创建一个spring-dubbo.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://code.alibabatech.com/schema/dubbo
           http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    
        <dubbo:application name="consumer"/>
        <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
        <dubbo:annotation package="com.example.dubbo.controller"/>
    </beans>
    

    3、在ServerApplication.java文件添加

    package com.example.dubbo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ImportResource;
    
    @SpringBootApplication(scanBasePackages = {"com.example.dubbo"})
    @MapperScan("com.example.dubbo.*") //扫描的mapper
    @ImportResource({"classpath:spring-dubbo.xml"})
    public class DubboClientApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DubboClientApplication.class, args);
        }
    
    }
    

    至此,代码部分已经编写完毕

    4、安装zookeeper注册中心到电脑中

    下载地址:zookeeper下载地址
    点击后下载适合自己的版本,如图所示

    进入bin目录,运行zkServer.cmd文件。

     5、安装dubbo-admin-2.5.8

    链接:https://pan.baidu.com/s/1Hfb778tIYhwjTZ_gx2BcYg
    提取码:yrfd

    下载好用Jetty或Tomcat运行起来

     界面

    6. 现在终于可以运行我们的项目了

    依次运行server、client

     server控制台看到如图所示,说明注册成功

     
  • 相关阅读:
    java获取src下包的文件的路径
    Java获取日期属于当年第几周
    DIV的内容自动换行
    js验证身份证格式
    处理 WebService 中的 Map 对象
    Oracle使用row_number()函数查询时增加序号列
    SpingMVC实现集合参数(Could not instantiate bean class [java.util.List])
    利用JS实现在li中添加或删除class属性
    栈的应用之中缀表达式转后缀表达式
    栈的应用之判断括号匹配
  • 原文地址:https://www.cnblogs.com/wangdahui/p/13101056.html
Copyright © 2020-2023  润新知