《Apache Dubbo微服务开发从入门到精通》——配置手册——三、 Annotation配置(中) https://developer.aliyun.com/article/1225162
3. 注解
1) @DubboService注解
注:
@Service注解从3.0版本开始就已经废弃,改用@DubboService,以区别于Spring的@Service注解。
定义好Dubbo服务接口后,提供服务接口的实现逻辑,并用@DubboService注解标记,就可以实现Dubbo的服务暴露。
如果要设置服务参数,@DubboService也提供了常用参数的设置方式。如果有更复杂的参数设置需求,则可以考虑使用其他设置方式。
2) @DubboReference注解
注:
@Reference注解从3.0版本开始就已经废弃,改用@DubboReference,以区别于Spring的@Reference注解。
@DubboReference注解将自动注入为Dubbo服务代理实例,使用demoService即可发起远程服务调用。
3) @EnableDubbo注解
@EnableDubbo注解必须配置,否则将无法加载Dubbo注解定义的服务,@EnableDubbo可以定义在主类上。
Spring Boot注解默认只会扫描main类所在的package,如果服务定义在其它package中,需要增加配置EnableDubbo(scanBasePackages= {"org.apache.dubbo.springboot.demo.provider"})。
4) 扩展注解配置
虽然可以通过@DubboService和DubboReference调整配置参数(如下代码片段所示),但总体来说注解提供的配置项还是非常有限。在这种情况下,如果有更复杂的参数设置需求,可以使用Java Config或dubbo.properties两种方式。
5) 使用Java Config代替注解
注:
Java Config是DubboService或DubboReference的替代方式,对于有复杂配置需求的服务建议使用这种方式。
6) 通过dubbo.properties补充配置
对于使用DubboService或DubboReference的场景,可以使用dubbo.properties作为配置补充,具体格式后文有更详细解释。
注:
properties格式配置目前结构性不太强,比如体现在key字段冗余较多,后续会考虑提供对于yaml格式的支持。