概述:

Spring Dubbo 是我自己写的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo。(即可以了解Spring boot的启动过程又可以学习一下dubbo的框架)

项目介绍:

github: https://github.com/Athlizo/spring-dubbo-parent

码云:  https://git.oschina.net/null_584_3382/spring-dubbo-parent

有兴趣的朋友可以一起交流学习。

1 现在是怎么启动dubbo

1.1 依赖dubbo jar包

如果不使用dubbo的spring框架,在maven依赖dubbo的时候配置就如下,dubbo 2.5.3的spring 框架版本还停留在2.5.6。

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.5.3</version>
    <exclusions>
        <exclusion>
            <artifactId>spring</artifactId>
            <groupId>org.springframework</groupId>
        </exclusion>
    </exclusions>
</dependency>

1.2 dubbo的配置:

1.2.1 通过配置文件:

现在的启动方式也很简单,使用dubbo提供的com.alibaba.dubbo.container.Main方法,在classpath下面加入配置文件dubbo.properties,例如:

dubbo.container=spring
dubbo.spring.config=classpath*:spring-all.xml
dubbo.registry=zookeeper://localhost:12181
dubbo.port=20882

其中 spring-all.xml 就是我们配置spring的文件。如果不配置,默认是从META-INF.spring中读取xml文件

1.2.2 通过spring的xml中

也就是直接在xml配置中配置,例如

<dubbo:application name="${dubbo.appname}"/>
<dubbo:registry address="${dubbo.registry}"/>
<dubbo:protocol name="dubbo" port="${dubbo.port}"/>

1.3 dubbo bean

可以通过xml和注解的方式来声明,就不在赘述(用过dubbo的都知道)

2. 存在的问题(前提是使用Spring Boot来启动dubbo服务)

2.1 dubbo的配置

dubbo的文件路径是固定的,也就是classpath下的dubbo.properties

2.2 dubbo bean

只能通过xml来配置,然后通过@ImportResource来引入配置xml文件。这个和spring boot风格不搭

2.3 使用dubbo的扩展

2.3.1 dubbo扩展定义

要使用dubbo的扩展功能(最常用的就是filter,已定义一个自己的filer为例子),必须按照他的要求来,首要要在指定目录下创建一个扩展的文件配置类,【路径写死了的】,代码为证:

private static final String SERVICES_DIRECTORY = "META-INF/services/";
private static final String DUBBO_DIRECTORY = "META-INF/dubbo/";
private static final String DUBBO_INTERNAL_DIRECTORY = DUBBO_DIRECTORY + "internal/";
loadFile(extensionClasses, DUBBO_INTERNAL_DIRECTORY);
loadFile(extensionClasses, DUBBO_DIRECTORY);
loadFile(extensionClasses, SERVICES_DIRECTORY);
然后在文件里面加入加入我们定义的filter
mymock=com.alibaba.dubbo.config.spring.filter.MockFilter

然后在创建一个这样的类 实现filter接口。加上@Activate注解。

2.3.2 dubbo扩展的使用

dubbo的扩展都是通过反射来获取的,那么要在构造的时候加入一些参数显然也就不可能。并且不是bean也不是通过spring 来管理,要使用@Autowire等也不行。

spring mvc中的filter,只要创建一个filter的bean就能生效。

2.4 我想想先

3 spring boot化的dubbo服务

优点就是:spring boot风格

缺点就是:如果你不认spring boot,那么都是缺点

Spring Dubbo 开发笔记(一)——概述的更多相关文章

  1. Spring Dubbo 开发笔记

    第一节:概述 Spring-Dubbo 是我自己写的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可 ...

  2. spring boot开发笔记——mybatis

    概述   mybatis框架的优点,就不用多说了,今天这边干货主要讲mybatis的逆向工程,以及springboot的集成技巧,和分页的使用   因为在日常的开发中,当碰到特殊需求之类会手动写一下s ...

  3. Spring Boot整合Dubbo使用及开发笔记

    一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...

  4. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  5. Spring MVC 学习笔记1 - First Helloworld by Eclipse【& - java web 开发Tips集锦】

    Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...

  6. 【转载】Maven+druid+MyBatis+Spring+Oracle+Dubbo开发环境搭建

    原地址:http://blog.csdn.net/wp1603710463/article/details/48247817#t16 Maven+druid+MyBatis+spring+Oracle ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  8. Spring Cloud失散多年的哥哥Dubbo学习笔记

    Spring Cloud失散多年的哥哥Dubbo 随着互联网项目用户量的急剧增长,访问并发良突然暴增,将一个应用使用多个独立的工程共同实现的系统架构,称为SOA系统架构,各个工程可以允许在不同的机器上 ...

  9. Spring注解开发_Spring容器创建概述

    浅尝Spring注解开发_Spring容器创建概述 浅尝Spring注解开发,基于Spring 4.3.12 概述Spring容器创建的过程,包括12个方法的执行 浅尝Spring注解开发_自定义注册 ...

随机推荐

  1. ubuntu16.04下安装配置深度学习环境(一、cuda7.5的安装)

    1.下载所需要的软件 cuda7.5下载(点击下载链接),cudnn4.0下载 2.安装NVIDIA驱动. 一般有两种方法:1)一种方法是利用"软件和更新"来安装,依次选择 系统设 ...

  2. 每天一个Linux命令(16)--which命令

    把昨天的,留给昨天:今日,你将重新开始. 好的,在第一个阶段我们学习了  文件目录的操作命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ls cd pwd mkdir ...

  3. Git的简单安装

    git 的安装及源代码上传 首先去官网把git下载好,这里给大家提供个官网下载地址 https://git-scm.com/downloads 安装完成后,在开始菜单里找到“Git”->“Git ...

  4. DOM基础(二)

    在我之前写的DOM基础(一)的文章中提到过兼容性的问题,也就是在获取标签间文本信息的时候,早期的火狐版本是不支持innerText的,只支持textContent ,现在的火狐浏览器两者都支持.而IE ...

  5. redux-form的学习笔记二--实现表单的同步验证

    (注:这篇博客参考自redux-form的官方英文文档)左转http://redux-form.com/6.5.0/examples/syncValidation/ 在这篇博客里,我将用redux-f ...

  6. Servlet中过滤器的执行流程

  7. 深入理解ajax系列第四篇——FormData

    前面的话 现代Web应用中频繁使用的一项功能就是表单数据的序列化,XMLHttpRequest 2级为此定义了FormData类型.FormData为序列化表单以及创建与表单格式相同的数据提供了便利. ...

  8. ios8指纹识别

    简介 苹果从iPhone5S开始,具有指纹识别技术,从iOS8.0之后苹果允许第三方 App 使用 Touch ID进行身份验证.指纹识别Touch ID提供3+2共5次指纹识别机会(3次识别失败后, ...

  9. 使用js实现ajax的get请求步骤

    (以下内容非原创,视频整合得来的) 1.创建XMLHttpRequest对象 2.浏览器与服务器建立连接 3.浏览器向服务器发送请求 4.服务器向浏览器响应请求 下面给出一个实例 1.创建一个test ...

  10. OpenStack/devstack with Neutron on Ubuntu 14 (1)

    安装前,推荐安装一个全新的Ubuntu Server14.04,如果使用之前的ubuntu, 中间可能遇到各种的python包依赖,以及软件版本不对应的问题 环境准备,新建stack用户,给予sudo ...