前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dubbo与SpringBoot整合的三种方式(12)

Dubbo与SpringBoot整合的三种方式(12)

作者头像
桑鱼
发布2020-03-17 16:46:56
9930
发布2020-03-17 16:46:56
举报
文章被收录于专栏:学习笔记持续记录中...

第1种方式:

  1. 在pom.xml中注入dubbo-starter依赖;
  2. 在application.properties配置属性;
  3. 在服务提供方的接口实现使用@service暴露服务,在服务消费方使用@Reference引用服务;
  4. 同时要注意的是使用@EnableDubbo来开启基于注解的dubbo功能

第2种方式:

  1. 保留dubbo xml配置文件;
  2. 导入dubbo-starter依赖;
  3. 使用@ImportResource导入dubbo的配置文件即可 (在原来的provider.xml中写并保留)
  4. 同时不需要使用@service来暴露服务了
代码语言:javascript
复制
@ImportResource(locations="classpath:provider.xml)

第3种方式:

  1. 使用注解API的方式,将每一个组件手动创建到容器中,让dubbo来扫描其他的组件,编写配置类
  2. 编写配置类
代码语言:javascript
复制
@Configuration
public class MyDubboConfig {
    @Bean
    public ApplicationConfig applicationConfig() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setName("boot-user-service-provider");
        return applicationConfig;
    }
    
    //<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
    @Bean
    public RegistryConfig registryConfig() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setProtocol("zookeeper");
        registryConfig.setAddress("127.0.0.1:2181");
        return registryConfig;
    }
    
    //<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>
    @Bean
    public ProtocolConfig protocolConfig() {
        ProtocolConfig protocolConfig = new ProtocolConfig();
        protocolConfig.setName("dubbo");
        protocolConfig.setPort(20882);
        return protocolConfig;
    }
    
    /**
     *<dubbo:service interface="com.atguigu.gmall.service.UserService" 
        ref="userServiceImpl01" timeout="1000" version="1.0.0">
        <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method>
    </dubbo:service>
     */
    @Bean
    public ServiceConfig<UserService> userServiceConfig(UserService userService){
        ServiceConfig<UserService> serviceConfig = new ServiceConfig<>();
        serviceConfig.setInterface(UserService.class);
        serviceConfig.setRef(userService);
        serviceConfig.setVersion("1.0.0");
        
        //配置每一个method的信息
        MethodConfig methodConfig = new MethodConfig();
        methodConfig.setName("getUserAddressList");
        methodConfig.setTimeout(1000);
        
        //将method的设置关联到service配置中
        List<MethodConfig> methods = new ArrayList<>();
        methods.add(methodConfig);
        serviceConfig.setMethods(methods);  
        //ProviderConfig
        //MonitorConfig
        return serviceConfig;
    }
}

3.主配置类中规定扫描类的路径,使用@EnableDubbo(scanBasePackages="com.sangyu.gmall")

4.实现类通过@service暴露服务

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档