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 注解方式配置相关推荐

  1. dubbo admin默认端口_Dubbo学习(四) Dubbo 从下载到编译成功

    DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广 ...

  2. SpringBoot2.1 - Quartz自动化配置集成 yml方式配置免配置类和properties

    首先非常感谢原作者恒宇少年 ,写了一遍好文章.找了很多文章终于找到比较有用有价值的高质量博文. 原贴地址:https://www.jianshu.com/p/056281e057b3 以下引用原文章. ...

  3. Dubbo面试题及答案,2021年Dubbo面试题-持续更新中

    2021最新Dubbo面试题[附答案解析]Dubbo面试题及答案2021,Dubbo最新面试题及答案,Dubbo面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的.这些答 ...

  4. dubbo学习(四)配置dubbo 注解方式配置

    provider service注解暴露服务 @Service public class AnnotationServiceImpl implements AnnotationService {@Ov ...

  5. dubbo service注解用法_Dubbo---开源分布式服务框架(一)

    当一个人先从自己的内心开始奋斗,他就是个有价值的人 [Dubbo] 主要内容 Dubbo简介 Dubbo架构讲解 Dubbo支持的协议 Dubbo支持的注册中心 第一个Dubbo的Provider A ...

  6. JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet

    一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...

  7. dubbo全局异常处理_Dubbo 学习1——Service自定义异常捕获不到问题

    阅读:[<面试官问我,使用Dubbo有没有遇到一些坑?我笑了.>](https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=22 ...

  8. dubbo 使用学习五(dubbo开发中使用到的一些服务配置方式)

    通过之前的学习了解了dubbo的常规的使用,下面我们看看特殊情况或者说真实环境下使用dubbo的一些配置实例. 一.一个接口有多个实现时可以使用group来区分 1.服务提供者配置 <?xml ...

  9. Spring框架学习day_02:组件扫描 / 注解内部读解 / 组件扫描中配置作用域和生命周期 / 解耦 / 自动装配(两种方式) / 读取文件

    1. 组件扫描 首先,必须让Spring扫描组件所在的包,并且,组件类的声明之前必须添加@Component注解! 其实,除了@Component注解以外,还可以使用以下注解实现同样的效果: @Con ...

  10. dubbo provider异步_Dubbo学习(六) Dubbo面试问题

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合). 从服务模型的角度来看,Dubbo采用的是一种非常简单的 ...

最新文章

  1. 伤害世界怎么自建服务器,Hurtworld伤害世界服务器怎么架设?服务器架设图文教程...
  2. python完全支持面向对象编程_[Python] 类与面向对象编程
  3. CentOS7中使用Dockerfile部署后台jar包
  4. 关于photoshop处理图片的自动化
  5. 【图文详解】如何彻底删除JDK(以win10、jdk1.8为例)
  6. 李宏毅机器学习课程7~~~反向传播
  7. 喜报!985大学首次登上Nature封面,这所学校可太不容易了!
  8. 计算机辅助开始于计算机发展的第几个阶段,计算机辅助开始于计算机发展第几阶段...
  9. matlab虚拟现实之在V-Realm Builder2中建立父子关系
  10. 让你的Hybrid App听懂你的话(Android篇)
  11. Flutter:Slivers大家族,让滑动视图的组合变得很简单!
  12. AdTime:多屏时代下传统媒体的鼓起
  13. ios 融云 重写对话列表_iOS开发融云即时通讯集成详细步骤
  14. Flutter 使用ListView的separated构造一个带下拉加载的列表
  15. Mesh Baker的基本操作与功能演示
  16. 在echarts中使用百度地图扩展,实现在地图上叠加显示栅格热力图
  17. GLFWError #65542 Happen, WGL: The driver does not appear to support OpenGL 问题解决
  18. 船用炉灶的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 有关JavaScript中条件逻辑的权威指南
  20. 分辨率PPI与DPI(转)

热门文章

  1. ubuntu14下搭建ssdb主从环境
  2. AssionShop开源B2C电子商务系统-概述(转载)
  3. 电脑死机大全,看完你就是高手了
  4. Centos-显示文件类型-file
  5. Ubuntu 普通用户无法启动Google chrome
  6. 如何在Web App Project 或者 Web Site Project的App_Code 内使用 Profile/ProfileCommon
  7. 漫谈 Clustering (5): Hierarchical Clustering
  8. 拓端tecdat|自然语言处理NLP:主题LDA、情感分析疫情下的新闻文本数据
  9. 拓端tecdat|R语言对BRFSS数据探索回归数据分析
  10. 拓端tecdat|python安娜卡列妮娜词云图制作