一.首先要将dubbox添加到本地maven仓库
    参考:
 
 
二.目录结构
 
三.生产者配置
applicationContext.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="dubbox-provider" />
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://192.168.42.88:2181" />
    <!-- 用rest协议在****端口暴露服务 -->
    <dubbo:protocol name="rest" port="8091" />
    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.chx.service.IDoSomeService" ref="iDoSomeService" />
    <!-- 和本地bean一样实现服务 -->
    <bean id="iDoSomeService" class="com.chx.service.impl.IDoSomeServiceImpl" />
</beans>
 
service接口
package com.chx.service;
 
 
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;
 
 
@Path("/dosome")
public interface IDoSomeService {
    @GET
    @Path("/dosomeService/{id}")    //Rest风格
    @Consumes({ MediaType.APPLICATION_JSON })
    String dosomeService(@PathParam("id") Integer id);
 
 
}
实现类
package com.chx.service.impl;
 
 
import com.chx.service.IDoSomeService;
 
 
public class IDoSomeServiceImpl implements IDoSomeService {
    @Override
    public String dosomeService(Integer id) {
        System.out.println("执行业务!业务Id:"+id);
        return "doSome";
    }
}
main方法加载配置类
package com.chx.service;
 
 
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 
import java.io.IOException;
 
 
public class test {
    public static void main(String[] args) throws IOException {
        // 发布服务
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        app.start();// 加载
        System.out.println("服务发布成功...");
        System.in.read(); // 让程序阻塞
    }
}
 
四.消费者配置
applicationContext.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="dubbox-consumer" />
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://192.168.42.88:2181" />
 
    <!-- 消费服务 -->
    <dubbo:reference interface="com.chx.service.IDoSomeService" id="iDoSomeService" />
 
</beans>
 
只保留接口不写实现,
main方法
package com.chx.service;
 
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 
import java.io.IOException;
 
 
public class test {
    public static void main(String[] args) throws IOException {
        // 发布服务
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        IDoSomeService iDoSomeService = (IDoSomeService)app.getBean("iDoSomeService");
        iDoSomeService.dosomeService(99);    //传递参数
    }
}
 
五.执行结果
 
浏览器rest风格调用返回结果
 

dubbox生产者与消费者案例的更多相关文章

  1. java学习之生产者和消费者案例

    package com.gh.thread; /** * 生产者和消费者案例 * wait和sleep的区别 * wait不让出监视器锁,sleep让出监视器的锁 * @author ganhang ...

  2. GUC-13 生产者和消费者案例-旧

    /* * 生产者和消费者案例 */ public class TestProductorAndConsumer { public static void main(String[] args) { C ...

  3. 同步锁Lock & 生产者和消费者案例

    显示锁 Lock ①在 Java 5.0 之前,协调共享对象的访问时可以使用的机 制只有 synchronized 和 volatile . Java 5.0 后增加了一些 新的机制,但并不是一种替代 ...

  4. ArrayBlockingQueue 阻塞队列 生产者 与消费者案例

    package com.originalityTest; import java.net.UnknownHostException; import java.util.ArrayList; impor ...

  5. Java多线程与并发——生产者与消费者应用案例

    多线程的开发中有一个最经典的操作案例,就是生产者-消费者,生产者不断生产产品,消费者不断取走产品. package com.vince; /** * 生产者与消费者案例 * @author Admin ...

  6. java 生产者 与 消费者的案例

    主要理解了两个问题 1.线程数据同步的问题 2.线程交替运行的方式 package ThreadDemo; /** * 生产者与消费者的案例(一,同步的问题,值的问题 二,交替执行的问题) * @au ...

  7. GUC-13 生产者消费者案例

    import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.uti ...

  8. 7.生产者消费者 案例 (使用Lock 同步锁 方式,使用Condition完成线程之间的通信)

    /* * 生产者消费者 案例 (使用Lock 同步锁 方式,使用Condition完成线程之间的通信) * */ public class TestProductorAndConsumerForLoc ...

  9. Condition线程通信_生产者消费者案例

    ①Condition 接口描述了可能会与锁有关联的条件变量. 这些变量在用 法上与使用 Object.wait 访问的隐式监视器类似,但提供了更强大的 功能. 需要特别指出的是,单个 Lock 可能与 ...

随机推荐

  1. 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发 阅读导航 常用类属性设 ...

  2. C#实现的Table的Merge,以及实现Table的Copy和Clone

    C#实现的对两个Table进行Merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义.如下是对两个table进行Merge的详细代码: private void button1_Cl ...

  3. ubuntu18.04误删apt-get命令恢复总结

    1.背景 由于使用aptitude命令替换了apt-get命令后感到后悔,想要恢复apt-get命令,特此总结以下踩过的坑 aptitude和apt-get的区别:https://www.cnblog ...

  4. jQuery XSS漏洞

    漏洞成因: jQuery中过滤用户输入数据所使用的正则表达式存在缺陷,可能导致location.hash跨站脚本攻击. 演示程序: <!DOCTYPE html> <html lan ...

  5. 第3章 关系数据库标准语言SQL(重点) | 数据库知识点整理

    第3章 关系数据库标准语言SQL(重点) 了解 SQL语言发展过程 关系数据库技术和关系数据库管理系统RDBMS产品的发展过程 掌握 SQL语言的特点和优点 面向过程的语言和SQL语言的区别 关系数据 ...

  6. Selenium实战(四)——unittest单元测试3(测试用例的执行顺序)

    一.测试用例的执行顺序 层级:多个测试目录 > 多个测试文件 > 多个测试类 > 多个测试方法(测试用例).在这里以一个测试执行顺序的脚本为例test_order.py import ...

  7. ArcMap 发布地图服务,提示发布工具没有启动

    Error: The server is not ready for publishing. Please check if the Publishing Tools on the server ar ...

  8. 电脑和手机上常用apk或Pc软件的重要目录或文件或文件夹路径

    常用apk或Pc软件的重要目录或文件或文件夹路径 01.hosts文件位置在哪里 C:\Windows\System32\drivers\etc 02.Windows7的锁屏壁纸目录在哪 C:\Win ...

  9. 2-1.了解Pod对象

    1.Pod参数定义 # 必填,版本号 apiVersion: string kind: Pod # 必填,元数据 metadata: # 必填,Pod对象的名称(命名规范需要符合RFC 1035规范) ...

  10. shelll高级编程【实战】(1)

    shell优势在于处理操作系统底层业务,2000多个命令都是shell的支持. 一键安装,报警脚本,常规业务操作,shell开发更简单快速. 1- 常用操作系统默认shell linux: Bourn ...