Spring Dubbo 开发笔记(一)——概述
概述:
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 开发笔记(一)——概述的更多相关文章
- Spring Dubbo 开发笔记
第一节:概述 Spring-Dubbo 是我自己写的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可 ...
- spring boot开发笔记——mybatis
概述 mybatis框架的优点,就不用多说了,今天这边干货主要讲mybatis的逆向工程,以及springboot的集成技巧,和分页的使用 因为在日常的开发中,当碰到特殊需求之类会手动写一下s ...
- Spring Boot整合Dubbo使用及开发笔记
一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- 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 ...
- 【转载】Maven+druid+MyBatis+Spring+Oracle+Dubbo开发环境搭建
原地址:http://blog.csdn.net/wp1603710463/article/details/48247817#t16 Maven+druid+MyBatis+spring+Oracle ...
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述
1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...
- Spring Cloud失散多年的哥哥Dubbo学习笔记
Spring Cloud失散多年的哥哥Dubbo 随着互联网项目用户量的急剧增长,访问并发良突然暴增,将一个应用使用多个独立的工程共同实现的系统架构,称为SOA系统架构,各个工程可以允许在不同的机器上 ...
- Spring注解开发_Spring容器创建概述
浅尝Spring注解开发_Spring容器创建概述 浅尝Spring注解开发,基于Spring 4.3.12 概述Spring容器创建的过程,包括12个方法的执行 浅尝Spring注解开发_自定义注册 ...
随机推荐
- 教你如何一步步将项目部署到Github
注册Github账号有半年多的时间,却一直不知道如何将自己做好的项目部署到Github中.看了网上许多的教程,要么一开始就来Git命令行,要么直接就来一堆术语,很少能够真正说中要点,解决我们的烦恼. ...
- Loadrunner之脚本编写
先打开loadrunner的服务器(打开成功之后会出现一个绿色的X) 以订票系统为例(http://127.0.0.1:1080/WebTours/) 录制一个登陆的脚本. 利用C语言编写一个简单的脚 ...
- 第十七篇 基于Bootstarp 仿京东多条件筛选插件的开发(展示下)
前些时候用换了工作,本来是用的前端框架是easyui,后面用的是bootstrap.对于我来说虽然不是新东西,因为原来毕业时候用过一段时间,也不懂什么插件的开发,现在用过easyui后觉得easyui ...
- 读阮一峰对《javascript语言精粹》的笔记,我有疑问。
<javascript语言精粹>是一本很棒的书籍,其中作者在附录列出了12种他所认为的javascript语言中的糟粕. 我最近开始跟读前端前辈的博客,其中读到了阮一峰的<12种不宜 ...
- JavaWeb之MVC模式
一.什么是MVC设计模式? MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Contr ...
- 用smarty来做简易留言系统,明细步骤简单操作
留言信息是之前用php做过的一个例子,现在把它用smarty模板来做 大概是这样子 点击发布信息 然后填写内容,发送后会返回表格,写的内容都会出现在表格里 数据库的数据是这样的: 先建两个文件.php ...
- [POJ1088] 滑雪(递归dp)
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- Java面试15|网络
1.TCP(Transmission Control Protocol)三次握手与四次分手 TCP在不可靠的传输信道上提供了可靠传输的抽象,隐藏了我们的应用程序大部分的复杂性功能:丢包重传,按序传送, ...
- React之ref详细用法
在react典型的数据流中,props传递是父子组件交互的唯一方式:通过传递一个新的props值来使子组件重新re-render,从而达到父子组件通信.当然,就像react官网所描述的一样,在reac ...
- 大数据系列之Flume+HDFS
本文将介绍Flume(Spooling Directory Source) + HDFS,关于Flume 中几种Source详见文章 http://www.cnblogs.com/cnmenglang ...