SpringBoot与Dubbo整合的方式详解

 更新时间:2019年09月11日 10:55:57   作者:zhangniuniu  
这篇文章主要介绍了SpringBoot与Dubbo整合的方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1. 使用默认application.properties和注解的方式

导入dubbo-starter,在application.properties配置属性,使用@Service注解来暴露服务,使用@Reference来引用服务。具体可参考 Dubbo整合SpringBoot,这里截取部分代码方便理解。

属性在application.properties中配置

服务提供方使用@Service注解暴露服务

部分配置如“timeout”等可以在注解上添加

服务消费方使用@Reference注解来引用服务

2. 引入dubbo.xml配置文件

保留dubbo.xml配置文件,导入dubbo-starter,使用@ImportResource导入dubbo的配置文件即可。

如果要实现暴露服务中的某个方法的配置,@Service注解此时就无能为力了

xml配置文件中的<dubbo:method />标签可以实现该功能

这就要求我们引入xml配置文件,方法很简单,启动类中通过 @ImportResource 注解引入即可

3. 使用注解API的方式

依旧使用@Service注解来暴露服务,使用@Reference来引用服务。同时使用注解API的方式来替代xml配置文件中的标签,将每一个组件手动创建到容器中,让dubbo来扫描其他的组件。

注解类的配置主要有三点:①注解类加注解@Configuration;②每个注解项添加@Bean注入到容器中;③准确使用注解API。

以服务提供方式的注解类为例:

package com.zang.gmall.config;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.MethodConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.ServiceConfig;
import com.zang.gmall.service.UserService;
@Configuration
public class MyDubboConfig {
  

  //<dubbo:application name="boot-user-service-provider"></dubbo:application>
  @Bean
  public ApplicationConfig applicationConfig() {
    ApplicationConfig applicationConfig = new ApplicationConfig();
    applicationConfig.setName("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:service interface="com.zang.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);    
    return serviceConfig;
  }
}

使用@DubboComponentScan注解指定dubbo扫描路径。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java后台开发之表单提交之前验证

    Java后台开发之表单提交之前验证

    这篇文章主要介绍了Java后台开发之表单提交之前验证的实现代码,非常不错具有参考借鉴价值,需要的朋友参考下吧
    2017-02-02
  • Java抢红包的红包生成算法

    Java抢红包的红包生成算法

    现在日常生活中抢红包已经成了日常游戏,本篇文章主要介绍了Java抢红包的红包生成算法,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • Java代码读取properties配置文件的示例代码

    Java代码读取properties配置文件的示例代码

    这篇文章主要介绍了Java代码读取properties配置文件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • java中驼峰与下划线的写法互转

    java中驼峰与下划线的写法互转

    这篇文章主要介绍了java中驼峰与下横线的写法互转方法,文中先是进行了简单的介绍,之后跟大家分享了一个自己编写的工具类的示例代码,有需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • Java中Spring扩展点详解

    Java中Spring扩展点详解

    这篇文章主要介绍了Java中Spring技巧之扩展点的应用,下文Spring容器的启动流程图展开其内容的相关资料,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Java中的Rocketmq事务消息详解

    Java中的Rocketmq事务消息详解

    这篇文章主要介绍了Java中的Rocketmq事务消息详解,RocketMQ的事务消息支持在业务逻辑与发送消息之间提供事务保证,RocketMQ通过两阶段的方式提供事务消息的支持,需要的朋友可以参考下
    2023-08-08
  • Java实现音频转码(WAV、MP3、AMR互转)

    Java实现音频转码(WAV、MP3、AMR互转)

    本文主要介绍了Java实现音频转码,包括WAV、MP3、AMR互转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • 使用Java生成jpg与压缩图片为jpg文件的代码示例

    使用Java生成jpg与压缩图片为jpg文件的代码示例

    这篇文章主要介绍了使用Java生成jpg与压缩图片为jpg文件的代码示例,都是对com.sun.image.codec.jpeg这个包的应用,需要的朋友可以参考下
    2015-11-11
  • Spring-AOP @AspectJ进阶之如何绑定代理对象

    Spring-AOP @AspectJ进阶之如何绑定代理对象

    这篇文章主要介绍了Spring-AOP @AspectJ进阶之如何绑定代理对象的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringMVC拦截器详解

    SpringMVC拦截器详解

    本篇文章主要介绍了SpringMVC拦截器配置及使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-07-07

最新评论