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=8013
mybatis.mapper-locations=classpath:mapping/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/weike?characterEncoding=utf-8
spring.datasource.username=root
spring.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 代码
@Component
public 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,这两个项目都是运行出现以下效果
总结:提供者提供所需接口,消费者去调用,开发分工更清晰,方便。
Dubbo开发,利用项目模拟提供者和消费者之间的调用--初学的更多相关文章
- [deviceone开发]-利用do_ListView模拟单选功能
一.简介 这个是利用do_ListView组件实现多个选项里选择一项的功能,示例很简单,但是有助于理解复用机制,也可以直接参考使用.初学者推荐.二.效果图 三.相关下载 https://github. ...
- Dubbo入门到精通学习笔记(十二):Dubbo消费端直连提供者(开发调试)、Dubbo服务只订阅(开发调试)、Dubbo服务只注册
文章目录 Dubbo消费端直连提供者(开发调试) Dubbo服务只订阅(开发调试) Dubbo服务只注册 Dubbo消费端直连提供者(开发调试) Dubbo 官方文档: 用户指南 >> 示 ...
- Dubbo学习-4-dubbo简单案例-2-服务提供者和消费者配置
在上一篇帖子的基础上,开始使用dubbo来实现RPC调用: 根据dubbo的架构图可知,需要做以下几件事情: 1.将服务提供者注册到注册中心(暴露服务) (1)引入dubbo依赖, 这里依赖2.6.2 ...
- Docker下dubbo开发三部曲之三:java开发
在前两章<Docker下dubbo开发,三部曲之一:极速体验>和<Docker下dubbo开发,三部曲之二:本地环境搭建>中,我们体验了dubbo环境搭建以及服务的发布和消费, ...
- C语言可以开发哪些项目?
C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程 ...
- 循序渐进开发WinForm项目(6)--开发使用混合式Winform模块
1.Winform数据访问模式定义 传统的Winform程序模块:用于传统的数据库通讯获取数据,这种方式获取数据,方便快捷,可以用于常规的业务系统的场景,用于单机版软件或者基于局域网内的业务系统软件. ...
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- 循序渐进开发WinForm项目(4)--Winform界面模块的集成使用
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- 循序渐进开发WinForm项目(2)--项目代码的分析
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
随机推荐
- [Swift]LeetCode839. 相似字符串组 | Similar String Groups
Two strings X and Y are similar if we can swap two letters (in different positions) of X, so that it ...
- Redis 设计与实现 (六)--发布订阅
发布订阅 相关命令:publish(发布) subscribe(订阅) psubscribe(支持通配符匹配) 发布者--频道--订阅者(发布和订阅都是客户端频道是服务端) 1.publish- ...
- Java中的数组添加,数组相关代码
private static void demo() { // TODO Auto-generated method stub /** * @author square 凉 * @功能 实 ...
- 工作随笔—Java容器基础知识分享(持有对象)
1. 概述 通常,程序总是运行时才知道的根据某些条件去创建新对象.在此之前,不会知道所需对象的数量,甚至不知道确切的类型,为解决这个普遍的编程问题:需要在任意时刻和任意位置创建任意数量的对象,所以,就 ...
- 树莓派pwm驱动好盈电调及伺服电机
本文讲述如何通过树莓派的硬件PWM控制好盈电调来驱动RC车子的前进后退,以及如何驱动伺服电机来控制车子转向. 1. 好盈电调简介 车子上的电调型号为:WP-10BLS-A-RTR,在好盈官网并没有搜到 ...
- Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南)
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9941208.html 主讲人:大石头 时间:2018-11-10 晚上20:00 地点:钉钉群(组织代码 ...
- Zuul介绍
1. Zuul是什么 Zuul是所有从设备和web站点到Netflix流媒体应用程序后端请求的前门.作为一个边缘服务应用程序,Zuul被构建来支持动态路由.监视.弹性和安全性.它还可以根据需要将请求 ...
- Java导出CSV文件
以前导出总是用POI导出为Excel文件,后来当我了解到CSV以后,我发现速度飞快. 如果导出的数据不要求格式.样式.公式等等,建议最好导成CSV文件,因为真的很快. 虽然我们可以用Java再带的文件 ...
- java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的
本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...
- CentOS 6.5中安装使用dstat资源统计工具
目录 1 dstat工具的使用 1.1 什么是dstat 1.2 dstat的基本使用 1.3 检测界面各参数的含义 1.4 dstat 的高级用法 2 dstat工具的安装 2.1 (推荐)通过yu ...