SpringBoot开发案例之整合Dubbo消费者

有人卖就有人买,显然是亘古不变的真理,前两篇讲解了SpringBoot+Dubbo的提供者的几种暴露方式,这篇跟大家分享一下消费者如何去订阅属于自己的服务。

相信,下图大家一定不陌生吧:注册中心,消费者,容器(提供者),监控中心。线框图也是画的如此清晰,这里就不跟大家详细的概述了。

000.jpg

开发环境

JDK1.7、Maven、Eclipse、SpringBoot1.5.1、Dubbo2.8.4

项目结构

21.png

实体类和业务接口,这里就不展示了,与提供者代码同步即可(自行打包引入或者复制)。

application.properties,也没什么好说的,修改一下server.context-path和server.port即可。

# 项目contextPath,一般在正式发布版本中,我们不配置
server.context-path=/consumer
# 错误页,指定发生错误时,跳转的URL。请查看BasicErrorController源码便知
server.error.path=/error
# 服务端口
server.port=8081
# session最大超时时间(分钟),默认为30
server.session-timeout=60
# 该服务绑定IP地址,启动服务器时如本机不是该IP地址则抛出异常启动失败,只有特殊需求的情况下才配置
# server.address=192.168.16.11

# tomcat最大线程数,默认为200
server.tomcat.max-threads=300
# tomcat的URI编码
server.tomcat.uri-encoding=UTF-8
#ZooKeeper
dubbo.registry.address=192.168.1.180:2181
logging.level.root=ERROR

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="springBoot_dubbo_consumer"/>

    <!-- 注册中心服务地址 -->
    <dubbo:registry  protocol="zookeeper" address="${dubbo.registry.address}" />
    
    <!-- 消费者配置 -->
    <dubbo:consumer   check="false"/>
    
    <!-- 使用注解方式-->
     <dubbo:annotation package="com.itstyle.dubbo"/>
</beans>

测试类一SpringbootDubboApplication.java:

@ImportResource({"classpath:dubbo.xml"})
@SpringBootApplication
//此处 userService 报空指针 如果是注解方式
public class SpringbootDubboApplication implements CommandLineRunner {

    @Reference
    private IUserService userService;

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

    @Override
    public void run(String... args) throws Exception {
        System.out.println("开启");
        User user = new User("张三", 19);
        userService.saveUser(user);
    }
}

测试类二DubboTest.java:

@Component
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:dubbo.xml" })
//可以运行 自行修改 dubbo.xml中address
public class DubboTest {
    @Reference
    private IUserService userService;

    @Test
    public void pors() {
        System.out.println("开启");
        User user = new User("张三", 19);
        userService.saveUser(user);
    }
}

启动类Application.java:

/**
 * @author 科帮网 小柒
 */
@EnableAutoConfiguration
@ImportResource({"classpath:dubbo.xml"})
@Controller
public class Application  {
    private static final Logger logger = Logger.getLogger(Application.class);
    @Reference
    private IUserService userService;
    @RequestMapping("/")
    @ResponseBody
    public String   greeting() {
        User user = new User("张三", 19);
        userService.saveUser(user);
        return "执行成功";
    }
    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(Application.class, args);
        logger.info("项目启动 ");
    }
}

首先运行提供方项目,然后执行消费者启动类,最后我们访问以下URL,http://localhost:8081/consumer ,提供者打印我是:张三,页面返回执行成功,说明调用成功。

代码:https://git.oschina.net/52itstyle/springboot_dubbo_consumer

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ml

vs---错误收集并自己解决后归纳

1。C++编译时,出现这样的错误 d:\program files\microsoft visual studio\vc98\include\stdio.h(3...

3296
来自专栏Java3y

Spring IOC知识点一网打尽!

1888
来自专栏菩提树下的杨过

分布式服务框架 dubbo/dubbox 入门示例

dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA服务框架。 官网首页:http://dubbo.io/ ,官方用户指南 http://dubbo....

60410
来自专栏技术墨客

Spring核心——数据校验

在Java数据校验详解中详细介绍了Java数据校验相关的功能(简称Bean Validation,涵盖JSR-303、JSR-349、JSR-380),本文将在...

6012
来自专栏技术小讲堂

ASP.NET AJAX(10)__Authentication ServiceAuthentication ServiceAuthentication Service属性Authentication

在通常情况下,如果使用AJAX方式调用WebService,则可能被恶意用户利用,造成性能以及安全性的问题,所以我们需要使用一些验证方式来保护WebServic...

3889
来自专栏XAI

SpringMVC+MongoDB+Maven整合(微信回调Oauth授权)

个人小程序。里面是基于百度大脑 腾讯优图做的人脸检测。是关于人工智能的哦。 2017年第一篇自己在工作中的总结文档。土豪可以打赏哦。 https://git.o...

8807
来自专栏技术墨客

Spring核心——数据校验

在Java数据校验详解中详细介绍了Java数据校验相关的功能(简称Bean Validation,涵盖JSR-303、JSR-349、JSR-380),本文将在...

1171
来自专栏Spring相关

第3章—高级装配—配置profile bean

我们正常开发的过程中经常遇到的问题是,开发环境是一套环境,qa测试是一套环境,线上部署又是一套环境。这样从开发到测试再到部署,会对程序中的配置修改多次,尤其是从...

1062
来自专栏一个会写诗的程序员的博客

《Spring Boot极简教程》第5章 Spring Boot自动配置原理

我们可以看到有783个java文件。spring-boot核心工程有551个java文件。从上面的java文件数量大致可以看出,SpringBoot技术框架的核...

1502
来自专栏菩提树下的杨过

gradle项目中资源文件的相对路径打包处理技巧

开发java application时,不管是用ant/maven/gradle中的哪种方式来构建,通常最后都会打包成一个可执行的jar包程序,而程序运行所需的...

8485

扫码关注云+社区

领取腾讯云代金券