Dubbo开发,利用项目模拟提供者和消费者之间的调用--初学

开发工具:IDEA,虚拟机 VMware Workstation

预备工作:安装好zookeeper的虚拟机,电脑jdk更换为1.7,本地tomcat启动,能够访问以下页面即可进行开发

2.建立以下springboot工程,关系图如下

1.首先打包父工程wk-parent,把需要的公共依赖导入,供其他项目依赖

2.打包pojo项目wk-pojo,实体类全部实现序列化

3.以上两个都打jar包即可,接下来整合接口项目wk-interface,只是单纯的接口即可,供提供者业务层实现

4.开发提供者wk-dubbo

a.service实现类代码

@Service(version="1.0.0")public class UserService implements IUserService {

@Autowired    private UserDao userDao;

@Override    public User loginAdmin(User user) {        return userDao.loginAdmin(user);    }

@Override    public WitkeyUser login(WitkeyUser witkeyUser) {        return userDao.login(witkeyUser);    }}b.application.properties
server.port=8013mybatis.mapper-locations=classpath:mapping/*.xmlmybatis.configuration.map-underscore-to-camel-case=truespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/weike?characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=root# 应用名称spring.dubbo.application.name=provider#注册中心地址spring.dubbo.registry.address=zookeeper://192.168.17.130:2181#协议名称spring.dubbo.protocol.name=dubbo#协议端口spring.dubbo.protocol.port=20880#服务类包目录spring.dubbo.scan=com.buba.weike.dubbo.wkdubbo.service.impl#打印mybatis日志信息logging.level.com.buba.weike.dubbo.wkdubbo.dao=debug

5.开发消费者,把接口打包,加入项目依赖中,并注入到消费者service层的实现类中

a.application.properties

## 避免和 server 工程端口冲突
server.port=8081
spring.mvc.view.prefix=/jsps/
spring.mvc.view.suffix=.jsp
## Dubbo 服务消费者配置
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://192.168.17.130:2181
spring.dubbo.scan=com.buba.weike.duboo.wkmanager.service

b.UserConsumer 代码

@Componentpublic class UserConsumer implements IUserConsumer {

@Reference(version="1.0.0")    IUserService iUserService;

public User loginAdmin(User user) {        return iUserService.loginAdmin(user);    }}

c.controller代码
@Controller@RequestMapping("/user")public class userController {

@Autowired    private IUserConsumer userService;

//登录    @ResponseBody    @RequestMapping("/loginAdmin")    public Map<String,String> loginAjax(User user, String code,HttpSession session){        Map<String,String> map=new HashMap<String,String>();        String codet=(String)session.getAttribute("verCode");        if(codet==null){            map.put("flag","false");            map.put("messages","请输入验证码!");        }        if(codet!=null && codet.equalsIgnoreCase(code)){            map.put("flag","true");            map.put("messages","验证码正确!");        }        if(codet!=null && !codet.equalsIgnoreCase(code)){            map.put("flag","false");            map.put("messages","验证码错误!");        }        User us =userService.loginAdmin(user);        if(us!=null){            session.setAttribute("user",us);            map.put("flag","true");            map.put("messages","登录成功!");        }else{            map.put("flag","false");            map.put("messages","账户名或密码错误!");        }        return map;    }

//生成图片    @RequestMapping("/authImage")    public void authImage(HttpServletResponse response, HttpSession session) throws IOException {        response.setHeader("Pragma", "No-cache");        response.setHeader("Cache-Control", "no-cache");        response.setDateHeader("Expires", 0);        response.setContentType("image/jpeg");        //生成随机字串        String verifyCode = VerifyCodeUtils.generateVerifyCode(4);        //存入会话session        //删除以前的        session.removeAttribute("verCode");        session.setAttribute("verCode", verifyCode.toLowerCase());        //生成图片        int w = 100, h = 30;        VerifyCodeUtils.outputImage(w, h, response.getOutputStream(), verifyCode);    }

}6.出现以下页面

 

提供者项目debug,sql语句信息

两个消费者wk-partol和wk-manager,这两个项目都是运行出现以下效果

总结:提供者提供所需接口,消费者去调用,开发分工更清晰,方便。

 

原文地址:https://www.cnblogs.com/wutongvip/p/10076977.html

时间: 2024-10-12 14:55:49

Dubbo开发,利用项目模拟提供者和消费者之间的调用--初学的相关文章

[Dubbo开发]配置简单的生产者和消费者

配置好jdk1.7.Zookeeper和Maven环境之后,开始尝试第一次搭建简单的dubbo生产者和消费者. dubbo服务的原理,引用经典的官方图(cr.Dubbo官网): 关于Dubbo的原理和机制,在此不做赘述,具体可以查询官方文档:http://dubbo.apache.org/#!/?lang=zh-cn. 接下来开始搭建生产者和消费者. 1.生产者(Provider) 创建一个maven项目, 代码如下: (1)接口ProviderService.java package com.

基于利用Jquery模拟Extjs的Panel界面的开发

JQuery 是一个强大js 选择器的开源框架脚本,有了他,本来要写20多行的js脚本,现在只需要10行就能完成,可惜的是,在界面方面,他虽然有Jquery-ui, 但他并没有建立一整套开源成熟的组件,如果他像Extjs/sencha那么成熟的套件,相信会更多人爱他.而像extjs的juqery成熟的开发库 miniUI 却要收费. 所以我尝试,仿照Extjs,模拟重写像Extjs的一套Panel窗口 ,但代码量足足比Extjs/sencha少了50%. 下载连接: https://github

Dubbo学习-4-dubbo简单案例-2-服务提供者和消费者配置

在上一篇帖子的基础上,开始使用dubbo来实现RPC调用: 根据dubbo的架构图可知,需要做以下几件事情: 1.将服务提供者注册到注册中心(暴露服务) (1)引入dubbo依赖, 这里依赖2.6.2版本(版本如果使用zookeeper作为注册中心,那么对应的客户端是curator,不是原来的zkClient) (2)注册中心使用的是zookeeper,需要引入操作zookeeper的客户端  2.6.以上版本的dubbo,如果使用zookeeper作为注册中心,那么注册中心客户端使用的是cur

NET开发学习项目资源

最近在整理资料时发现自己当初学习NET的一些项目资源,一直放在硬盘里不如拿来分享给初学者学习还是不错的. 项目代码为<精通ASP.NET20+SQL Server2005项目开发>书中源码,请不要原封不动的下载后用于商业用途. 点击标题链接即可下载. 目录: 1.电子通讯录系统 功能包括用户注册.用户登录.修改密码.添加好友.添加好友联系方式.修改好友联系方式.删除好友联系方式等. 2.网上选课系统 通过该系统,学校不同角色的用户可以通过网路完成选课系统功能:管理员通过该系统实现对学生.教师.

利用qemu模拟嵌入式系统制作全过程

http://www.tinylab.org/using-qemu-simulation-inserts-the-type-system-to-produce-the-whole-process/ 利用qemu模拟嵌入式系统制作全过程 by Pingbo Wen of TinyLab.org 2013/08/31 这篇文章,将介绍如何用qemu来搭建一个基于ARM的嵌入式linux系统.通过该文章,你可以学习到如何配置kernel,如何交叉编译 kernel,如何配置busybox并编译,如何制

开发初步——项目思维的培养

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827308.html 要开发一个项目(当然不是HelloWorld那种...),编码只是其中的一道工序.想要高效.高质量地完成一个项目,需要一套行之有效的执行方法,那就是项目思维. 项目思维主要包括6步,详细如下: 1:需求收集. 广泛征集需求,才能更加全面.准确地对软件进行定位,才能更全面地考虑到我们即将要开发的软件需要什么样的功能. 2:详细需求分析(具体功能与流程分析) 1)确定产品的用户角色:主要是

Delphi下利用WinIo模拟鼠标键盘详解

http://www.cnblogs.com/rogee/archive/2010/09/14/1827248.html 本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-17207-1.htm,相关文件可以在上述地址的页面中下载.转载时请注明出处. 前言 一日发现SendInput对某程序居然无效,无奈只好开始研究WinIo.上网查了很多资料,发现关于WinIo模拟鼠标键盘的资料很少,有的也只是支言片语讲的不是很详细,而且大部分都是关于模拟键

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加.删除.修改文档) 分类: SharePoint2012-01-18 18:02 1189人阅读 评论(0) 收藏 举报 文档propertiesstringurl测试web 1.测试文档库(Doclib1.Doclib2): 增加一栏“测试栏1”. 2.新建“可视化web部件项目”,添加“解决方案资源管理器”里边选中项目右键“添加”-“新建项”-"事件接收器“ 如图操作,选择”列表项事件“和”文档库“集相应处理事件 实现

利用 qemu 模拟嵌入式系统制作全过程

利用qemu模拟嵌入式系统制作全过程 by Pingbo Wen of TinyLab.org 2013/08/31 这篇文章将介绍如何用 Qemu 来搭建一个基于 ARM 的嵌入式 Linux 系统.通过该文章可以学习到如何配置和交叉编译 Kernel,如何配置 Busybox 并编译,如何制作 Initramfs,如何制作根文件系统,如何定制自己的 Uboot,如何通过 Uboot 向 Kernel 传递参数等.开始干活! 零.环境搭建 在实现我们的目标之前,我们需要搭建自己的工作环境.在这