dubbo service注解用法_dubbo学习(四)配置dubbo 注解方式配置
provider(生产者)
service注解暴露服务
/*** 用户管理实现类*/@Service//用的dubbo的注解,表明这是一个分布式服务
@Component //注册为spring bean
public class UserServiceImpl implementsUserService {
@AutowiredprivateUserMapper userMapper;
@Overridepublic ListlistUser() {
List result = new ArrayList<>();
List list =userMapper.listUser();for(User user : list) {
UserVO vo= newUserVO();
BeanUtils.copyProperties(user, vo);
result.add(vo);
}returnresult;
}
}
PS:@Service注解很容易用错,目前有两个包有@Service注解:
com.alibaba.dubbo.config.annotation.Service:用于标注对外暴露的dubbo接口实现类。
org.springframework.stereotype.Service:用于标注根据业务块分离的Service的实现类,对应的是业务层(如一个dubbo方法可能调用多个业务块的service,这些service的实现类就用Spring的注解)。
PS:若使用的是dubbo的Service注解时,在controller注入的时候,要选择@Reference注解来进行注入。
dubbo配置
在SpringBoot的配置文件application.yml中配置dubbo信息
dubbo:
application:
name: user-service
registry:
address: zookeeper://127.0.0.1:2181
protocol:
port: 20880
name: dubbo
启动类配置
@SpringBootApplication
@EnableDubbo
@MapperScan(basePackages= "zhbf.user.mapper")//配置mapper扫描的路径(Mybatis的mapper接口)
public classUserBootStarter {public static voidmain(String[] args) {
SpringApplication.run(UserBootStarter.class, args);
System.out.println("==========USER模块启动完成!==========");
}
}
@Configuration:启动类注解。@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。
@EnableDubbo:开启注解Dubbo功能 ,其中可以加入scanBasePackages属性配置包扫描的路径,用于扫描并注册bean
@MapperScan:指定mybatis的mapper接口存放路径,用于扫描mapper接口并注册
consumer(消费者)
Reference注解引用服务
/*** 用户管理Controller*/@RestController
@RequestMapping(value= "/userManage")public classUserManageController {
@ReferenceprivateUserService userService;/*** 查询用户集合
*@return
*/@RequestMapping("queryListUser")publicString queryListUser() {
List list =userService.listUser();returnlist.toString();
}
}
@Component:(把普通pojo实例化到spring容器中,相当于配置文件中的 ) 泛指各种组件,当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
例:上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。
@Reference:与@Autowired、@Resource注解功能类似,用于依赖注入,一般注入的是分布式的远程服务的对象,需要dubbo配置使用
dubbo配置
在SpringBoot的配置文件application.yml中配置dubbo信息(这里以application.properties举例)
# dubbo配置
dubbo.application.name=web-service
dubbo.registry.address=zookeeper://127.0.0.1:2181
启动类配置
@SpringBootApplication
@EnableDubbopublic classWebBootStarter {public static voidmain(String[] args) {
SpringApplication.run(WebBootStarter.class, args);
System.out.println("==========WEB模块启动完成!==========");
}
}
PS:@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中。
调用服务
http://localhost:8081/userManage/queryListUser
dubbo service注解用法_dubbo学习(四)配置dubbo 注解方式配置相关推荐
- dubbo admin默认端口_Dubbo学习(四) Dubbo 从下载到编译成功
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广 ...
- SpringBoot2.1 - Quartz自动化配置集成 yml方式配置免配置类和properties
首先非常感谢原作者恒宇少年 ,写了一遍好文章.找了很多文章终于找到比较有用有价值的高质量博文. 原贴地址:https://www.jianshu.com/p/056281e057b3 以下引用原文章. ...
- Dubbo面试题及答案,2021年Dubbo面试题-持续更新中
2021最新Dubbo面试题[附答案解析]Dubbo面试题及答案2021,Dubbo最新面试题及答案,Dubbo面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的.这些答 ...
- dubbo学习(四)配置dubbo 注解方式配置
provider service注解暴露服务 @Service public class AnnotationServiceImpl implements AnnotationService {@Ov ...
- dubbo service注解用法_Dubbo---开源分布式服务框架(一)
当一个人先从自己的内心开始奋斗,他就是个有价值的人 [Dubbo] 主要内容 Dubbo简介 Dubbo架构讲解 Dubbo支持的协议 Dubbo支持的注册中心 第一个Dubbo的Provider A ...
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...
- dubbo全局异常处理_Dubbo 学习1——Service自定义异常捕获不到问题
阅读:[<面试官问我,使用Dubbo有没有遇到一些坑?我笑了.>](https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=22 ...
- dubbo 使用学习五(dubbo开发中使用到的一些服务配置方式)
通过之前的学习了解了dubbo的常规的使用,下面我们看看特殊情况或者说真实环境下使用dubbo的一些配置实例. 一.一个接口有多个实现时可以使用group来区分 1.服务提供者配置 <?xml ...
- Spring框架学习day_02:组件扫描 / 注解内部读解 / 组件扫描中配置作用域和生命周期 / 解耦 / 自动装配(两种方式) / 读取文件
1. 组件扫描 首先,必须让Spring扫描组件所在的包,并且,组件类的声明之前必须添加@Component注解! 其实,除了@Component注解以外,还可以使用以下注解实现同样的效果: @Con ...
- dubbo provider异步_Dubbo学习(六) Dubbo面试问题
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合). 从服务模型的角度来看,Dubbo采用的是一种非常简单的 ...
最新文章
- 伤害世界怎么自建服务器,Hurtworld伤害世界服务器怎么架设?服务器架设图文教程...
- python完全支持面向对象编程_[Python] 类与面向对象编程
- CentOS7中使用Dockerfile部署后台jar包
- 关于photoshop处理图片的自动化
- 【图文详解】如何彻底删除JDK(以win10、jdk1.8为例)
- 李宏毅机器学习课程7~~~反向传播
- 喜报!985大学首次登上Nature封面,这所学校可太不容易了!
- 计算机辅助开始于计算机发展的第几个阶段,计算机辅助开始于计算机发展第几阶段...
- matlab虚拟现实之在V-Realm Builder2中建立父子关系
- 让你的Hybrid App听懂你的话(Android篇)
- Flutter:Slivers大家族,让滑动视图的组合变得很简单!
- AdTime:多屏时代下传统媒体的鼓起
- ios 融云 重写对话列表_iOS开发融云即时通讯集成详细步骤
- Flutter 使用ListView的separated构造一个带下拉加载的列表
- Mesh Baker的基本操作与功能演示
- 在echarts中使用百度地图扩展,实现在地图上叠加显示栅格热力图
- GLFWError #65542 Happen, WGL: The driver does not appear to support OpenGL 问题解决
- 船用炉灶的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 有关JavaScript中条件逻辑的权威指南
- 分辨率PPI与DPI(转)
热门文章
- ubuntu14下搭建ssdb主从环境
- AssionShop开源B2C电子商务系统-概述(转载)
- 电脑死机大全,看完你就是高手了
- Centos-显示文件类型-file
- Ubuntu 普通用户无法启动Google chrome
- 如何在Web App Project 或者 Web Site Project的App_Code 内使用 Profile/ProfileCommon
- 漫谈 Clustering (5): Hierarchical Clustering
- 拓端tecdat|自然语言处理NLP:主题LDA、情感分析疫情下的新闻文本数据
- 拓端tecdat|R语言对BRFSS数据探索回归数据分析
- 拓端tecdat|python安娜卡列妮娜词云图制作