酷站(www.ku0.com)-致力于为互联网从业者提供动力!

热门关键词:  企业  as  baidu  c4rp3nt3r  美女
酷站

【云小站】新老客都返现+现金红包+瓜分60万奖池
酷站

java

旗下栏目: php js asp Flex Ajax JSP jquery asp.net C语言 java 正则表达式 微信小程序 Android IOS

SpringBoot与Dubbo整合的方式的教程

来源:互联网搜集 作者:秩名 人气: 发布时间:2019-09-11
本篇文章主要介绍了SpringBoot与Dubbo整合的方式的教程,对大家的学习或者工作具有一定的参考学习价值,感兴趣的小伙伴们可以参考一下,也感谢大家对酷站(ku0.com)的支持。

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扫描路径。


版权声明:本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 959677720#qq.cn(#换@) 举报,一经查实,本站将立刻删除。
原文链接:https://www.cnblogs.com/zyy1688/p/10869474.html

相关文章

  • Java实现单人信息管理程序方法

    Java实现单人信息管理程序方法

    对前一个菜单程序进行扩充,要求增加一个人的完整信息,人的信息包括姓名和年龄。保存后也可以修改、删除、查询此信息. 可以使用对象序列化保存,需要增加文件操作类,专门负责保存和读取文件的内容,并修改 Operate 类,为其增加具体的......
    02-13
  • java.mail实现发送邮件方法

    java.mail实现发送邮件方法

    前提条件: 需要对邮箱做出设置,开启 :POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV等服务 一方面是接收这些代理服务器发送的邮件 另一方面就是让邮箱接受这些邮件协议的代理 在登录的时候,就是用户名和授权码,进行登录,获取授权码的过......
    02-11
  • Linux中Java开发常用软件安装方法

    Linux中Java开发常用软件安装方法

    开发工具下载: Tomcat下载: wget http://learning.happymmall.com/tomcat/apache-tomcat-7.0.73.tar.gz JDK下载: wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64......
    02-07
  • 基于java向mysql数据库中存取图片

    基于java向mysql数据库中存取图片

    学mysql的时候都是做个表格,放的也都是文字内容,虽然我知道长篇的文章和图片或者视频的都是用过文件夹的方式存储的,再讲文件路径存进数据库中。但还是想试试直接往mysql数据库中存取图片。这里我用的是java语言和jdbc实现的 mysql数据......
    02-05
  • Jmeter添加循环控制器的方法

    Jmeter添加循环控制器的方法

    场景描述:批量数据创建 新建线程组-编辑请求信息POST,创建产品 将入参录入Body Data 添加用户定义的变量,将数据参数化${value},在请求入参中引用 循环控制器应该控制的是多次请求,生成批量产品数据,添加循环控制器,设置循环次数,......
    02-03
  • linux中java获取路径的代码

    linux中java获取路径的代码

    linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜/,比如cd /home/java。 在java的代码开发中 \ 是代表转义字符。 相对路径和绝对路径 . 指的是当前目录 .. 指的是当前目录的上一级目录 ./book表示当前目录下的book文件......
    02-03
  • Java中的强制类型转换 大数转小数的介绍

    Java中的强制类型转换 大数转小数的介绍

    首先要明确一下转换规则:大数转小数,多出的高位部分会被截断。比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte ,int 高位多出的那24个bit会被截断。 例1: int b = 233; // 正整数强转System.out.println((byte)b);......
    02-02
  • Java递归求和1+2+3+...+n介绍

    Java递归求和1+2+3+...+n介绍

    Java递归求和1+2+3+...+n public class Sum { public static int count(int n) { if (n 1) { return count(n - 1) + n; } else { return n; } } public static void main(String[] args) { System.out.println(Sum.count(100)); }} 扩展......
    01-31
  • Mybatis批量插入数据返回主键的介绍

    Mybatis批量插入数据返回主键的介绍

    响应效果(id为主键): { data: [ {studentName: 张三,classNo: 一班,id: 111}, {studentName: 李四,classNo: 二班,id: 112}, {studentName: 王五,classNo: 一班,id: 113} ]} 控制层: @PostMapping(/test)@ResponseBodypublic MapStrin......
    01-21
  • java实现波雷费密码算法

    java实现波雷费密码算法

    一、算法描述 波雷费密码是一种对称式密码,是首种双字母取代的加密法。 下面描述算法步骤: 1、从1号二维码M05,提取明文信息和密文,M05格式:xxxxxx|yyyyyy,其中明文xxxxxx,密钥部分信息为yyyyyy中的提取所有英文字母信息。 2、将提......
    01-18

最新更新