
SpringBoot整合Dubbo
发布日期:2021-05-09 04:58:03
浏览次数:14
分类:博客文章
本文共 3980 字,大约阅读时间需要 13 分钟。
通过三个工程演示整合过程
工程一:API工程:服务端与客户端共同需要引入的工程
pom:无特殊依赖,下边内容供服务端与客户端引用此工程使用
com.boot.dubbo.demo dubbo-api 1.0-SNAPSHOT
实体类:
package com.boot.dubbo.demo.domain;import java.io.Serializable;/** * 用户信息类 */public class UserInfo implements Serializable { private String account; private String password; public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
API:
package com.boot.dubbo.demo.api;import com.boot.dubbo.demo.domain.UserInfo;public interface UserService { // 定义用户登录的api UserInfo login(UserInfo user);}
工程二:生产者工程:服务端
pom
com.boot.dubbo.demo boot-dubbo-api 1.0-SNAPSHOT
dubbo必须依赖项:(使用zk)
com.alibaba.spring.boot dubbo-spring-boot-starter 2.0.0 com.101tec zkclient 0.10 org.apache.zookeeper zookeeper 3.4.10 org.slf4j slf4j-log4j12 log4j log4j
application.yml:配置dubbo配置项
spring: dubbo: application: name: dubbo-provider protocol: name: dubbo port: 20880 registry: address: zookeeper://192.168.3.101:2181
package com.boot.dubbo.demo.dubboprovider.service;import com.alibaba.dubbo.config.annotation.Service;import com.boot.dubbo.demo.api.UserService;import com.boot.dubbo.demo.domain.UserInfo;import org.springframework.stereotype.Component;@Component@Service(interfaceClass = UserService.class) //注意是dubbo的注解,向外暴露接口public class UserServiceImpl implements UserService { public UserInfo login(UserInfo user) { UserInfo reUser = new UserInfo(); reUser.setAccount("登录的账号为:"+user.getAccount()); reUser.setPassword("登录的密码为:"+user.getPassword()); return reUser; }}
package com.boot.dubbo.demo.dubboprovider;import com.alibaba.dubbo.spring.boot.annotation.EnableDubbo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubbo // 启用dubbopublic class DubboProviderApplication { public static void main(String[] args) { SpringApplication.run(DubboProviderApplication.class, args); }}
工程三:消费者工程:客户端
pom依赖与工程二相同
application.yml配置:
spring: dubbo: application: name: dubbo-provider protocol: name: dubbo port: 20880 registry: address: zookeeper://192.168.3.101:2181server: port: 8081
Controller
package com.boot.dubbo.demo.dubboconsumer.controller;import com.alibaba.dubbo.config.annotation.Reference;import com.boot.dubbo.demo.api.UserService;import com.boot.dubbo.demo.domain.UserInfo;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController { @Reference // 引用dubbo服务器提供服务器接口 private UserService userService; @GetMapping("/login") public UserInfo login(UserInfo userInfo) { return userService.login(userInfo); }}
package com.boot.dubbo.demo.dubboconsumer;import com.alibaba.dubbo.spring.boot.annotation.EnableDubbo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubbopublic class DubboConsumerApplication { public static void main(String[] args) { SpringApplication.run(DubboConsumerApplication.class, args); }}
这样客户端就可以通过Dubbo调用服务端提供的方法了
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月04日 14时39分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
100天搞定机器学习|Day9-12 支持向量机
2021-05-09
100天搞定机器学习|Day19-20 加州理工学院公开课:机器学习与数据挖掘
2021-05-09
100天搞定机器学习|Day22 机器为什么能学习?
2021-05-09
100天搞定机器学习|day37 无公式理解反向传播算法之精髓
2021-05-09
数据工程师必备的8项技能,不要只知道Python!
2021-05-09
R in action读书笔记(3)-第六章:基本图形
2021-05-09
R in action读书笔记(19)第十四章 主成分和因子分析
2021-05-09
iOS UIAlertController
2021-05-09
iOS UISlider的使用
2021-05-09
iOS Xcode 打包之后,不能输出日志
2021-05-09
UIPickerView的使用(二)
2021-05-09
iOS 多线程GCD简介
2021-05-09
实现延迟消息队列
2021-05-09
写了一下 micropython 的文件系统单元测试
2021-05-09
说说字库和字模的故事,然后在 MaixPy 里实现打印中文字体(任意字体)吧!
2021-05-09
线性代数应该这样学9:上三角矩阵、对角矩阵
2021-05-09
【科学计算】插值理论
2021-05-09
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
2021-05-09
在wxPython使ListCtrl占据整个窗口
2021-05-09