您现在的位置是:网站首页 > 分类 > 文章详情

X工程调用dubbo服务过程

T2018年2月25日 16:05217人围观
简介dubbo是阿里巴巴开源的一套rpc方案,以为理念很契合微服务,这几年很火,用户里面不凡京东,当当,去哪儿等大公司。这里主要讲下调用过程以及方式

概要:http://www.wuzihan.top/post/87/该篇博文中,放了一个简书上的provider和consumer的dubbo调用例子。这篇文章也类似,主要也就是简单记录下springboot怎么整合dubbo
1、在pom文件中引入zookeeper、dubbo的jar包

<!-- Dubbo依赖 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.5</version>
        </dependency>
        <!-- zookeeper的客户端依赖 -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>

2、在Resources目录下新建一个config文件,再在config下新建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.lrm.web"/>
</beans>

3、在springboot的启动类中加入注解:@ImportResource({"classpath:config/spring-dubbo.xml"})
4、将简书例子中的api打成jar包(idea中右侧栏有一个Maven Projects打开,点开api里面有一个Plugins,先clean下;再点击Licycle下的package即可完成打包,打包后在target根目录中可找到) ,最后将该jar引入X工程
打包的方法二:直接进入项目对应目录,cmd命令:mvn package、mvn install 都可以在target目录下生成jar 5、在com.lrm.web目录下新建一个controller,如下

package com.lrm.web;

import com.alibaba.dubbo.config.annotation.Reference;
import com.boot.service.TestService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/admin")
public class DubboTest {

    @Reference(version = "1.0.0")
    private TestService testService;

    @GetMapping("/hello")
    public String hello(Model model) {
        String result = testService.sayHello("Hello springboot and dubbo!");
        System.out.println(result);
        model.addAttribute("hello",result);
        return "admin/hello";
    }


}

备注:controller中不能完全跟我上面例子一样写,我用了themeleaf模板,大概表达这个调用的意思
另外贴下本文中所需要用到的几个mvn命令:
进入项目根目录,执行,
1)mvn clean 清除target目录
2)mvn compile 生成target目录
3)mvn package 打jar(直接进idea点击maven project,lifecycle下点击package即可)
4)mvn install 编译、打包、本地.m2仓库生成jar(路径,如果没有设置mavnd地址,默认C:\Users\.m2\repository\com)

文章评论

阿里云-云大使推广
阿里云-云服务器推广

微信公众号