首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Dubbo应用开发之Dubbo中注解详解

Dubbo应用开发之Dubbo中注解详解

原创
作者头像
全干程序员demo
发布2025-10-22 09:12:36
发布2025-10-22 09:12:36
1990
举报
文章被收录于专栏:Dubbo应用开发Dubbo应用开发

Dubbo应用开发之Dubbo中注解详解

这里主要讲解关于上一篇springboot方式开发Dubbo应用中出现的三个注解,分别为@EnableDubbo,@DubboService,@DubboReference.

@EnableDubbo注解作用

  • @EnableDubbo ⽤于扫描@DubboService 并把对应的对象实例化,发布成RPC服务。
  • 扫描的路径:应⽤这个注解的类(启动类)所在的包及其⼦包。

如果@DubboService注解修饰的类没有放到@EnableDubbo注解修饰类当前包及其⼦包

  • 其实这个问题跟@SpringbootApplication是一样的都可以通过指定包名的方法解决,可以通过@DubboComponentScan(basePackages ={"org.hust.service"}),显示的指定扫描的路径
  • yml进⾏配置扫描@DubboService 并把对应的对象实例化,发布成RPC服务
代码语言:yml
复制
dubbo:
  scan:
    base-packages: org.hust.service

这里又引出了一个问题,为什么@EnableDubbo注解可以不加,但是我们一般建议加上

在 Dubbo 开发中,@EnableDubbo 注解不是必须手动加的原因,是因为 Spring Boot 的自动装配机制已经帮你默认开启了 Dubbo 的功能。这意味着:

  • 只要你引入了 dubbo-spring-boot-starter
  • 并且没有手动设置 dubbo.enabled=false
  • Dubbo 会自动配置好并生效,无需手动加 @EnableDubbo

什么时候需要手动加 @EnableDubbo

场景

是否需要加

使用 Spring Boot + dubbo-spring-boot-starter

❌ 不需要

使用纯 Spring(非 Boot),手动装配 Dubbo

✅ 需要加

想自定义扫描包路径(如 @EnableDubbo(scanBasePackages = "...")

✅ 可以加

禁用了自动配置(如 exclude = DubboAutoConfiguration.class

✅ 需要加

总结

只要你用的是 Spring Boot + Dubbo Starter,@EnableDubbo 可以不写,Dubbo 会自动启用。 只有在非 Boot 环境或需要自定义扫描路径时才需要显式加。

@DubboService注解的作⽤

  • 应⽤@DubboService注解修饰类型,SpringBoot会创建这个类型的对象,并发布成Dubbo服务
  • @DubboService 等同于 @Component(@Service) @Bean注解的创建对象的作⽤
  • 后续开发过程中如果考虑兼容性,建议实现类不仅仅要加⼊@DubboService注解,同时也要加⼊@Service注解

@DubboReference注解的作⽤

  • 在Consumer端,通过@DubboReference,注⼊远端服务的代理对象
  • @DubboReference类似于原始Spring开发中@Autowired注解的作⽤

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Dubbo应用开发之Dubbo中注解详解
    • @EnableDubbo注解作用
      • 什么时候需要手动加 @EnableDubbo
      • 总结
    • @DubboService注解的作⽤
    • @DubboReference注解的作⽤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档