spring-boot整合dubbo:Spring-boot-dubbo-starter
为什么要写这个小工具
如果你用过Spring-boot来提供dubbo服务,相信使用中有很多“不爽”的地方。既然使用spring boot,那么能用注解的地方绝不用xml配置,这才是spring-boot-style。开个玩笑,真正意思是,spring-boot适合一些简单的、独立的服务,一个大的系统是不适合使用spring-boot来开发。相反,spring-boot适合那些简单服务的搭建。 网上大多数的方法还是使用xml配置,通过@Import注解来引入xml配置。
怎么使用
- 对于服务的消费者或提供者,使用dubbo内置的注解@Service或@Reference来声明
- 在application.properties/yml 中配置dubbo的相关参数,例如下面就是一个简单的消费者的配置
dubbo:
application:
name: lizo-consumer
registry:
address: zookeeper://localhost:12181 - 在配置类上使用@EnableDubbo(basePackages = "xxx.xxx.xxx") 来开启dubbo的自动配置
经过以上3个步骤,就可以完成对dubbo的配置,是不是很Spring-bootstyle
dubbo-filter
dubbo有很多扩展,其中filter是使用比较多一个。但是用起来很不方便。如果能像Spring boot定义Spring MVC的filter那样简单声明一个bean就好了。恩,其实就是这样。
@Bean
ProviderFilter providerFilter() {
return new ProviderFilter();
} static class ProviderFilter extends AbstractDubboProviderFilterSupport {
public Result invoke(Invoker<?> invoker, Invocation invocation) {
System.out.println("ProviderFilter");
return invoker.invoke(invocation);
}
}
更定制化的需求,可以使用Dubbo的@Activate注解来定制化Filter,那么可以这样
@Bean
CustomFilter customFilter() {
return new CustomFilter();
} @Activate(group = Constants.PROVIDER)
static class CustomFilter extends AbstractDubboFilterSupport {
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
System.out.println("ProviderFilter2");
return invoker.invoke(invocation);
} public Filter getDefaultExtension() {
return this;
}
}
如果感兴趣
源码及其demo地址:
- 码云:https://git.oschina.net/null_584_3382/spring-dubbo-parent
- github:https://github.com/Athlizo/spring-dubbo-parent
最后说明
- dubbo底层代码是没进行开发过的,只是在其基础上进行的封装。
- 不支持多注册源
- 有bug或者有代码优化建议欢迎反馈
spring-boot整合dubbo:Spring-boot-dubbo-starter的更多相关文章
- Spring Boot整合实战Spring Security JWT权限鉴权系统
目前流行的前后端分离让Java程序员可以更加专注的做好后台业务逻辑的功能实现,提供如返回Json格式的数据接口就可以.像以前做项目的安全认证基于 session 的登录拦截,属于后端全栈式的开发的模式 ...
- Spring Boot (十三): Spring Boot 整合 RabbitMQ
1. 前言 RabbitMQ 是一个消息队列,说到消息队列,大家可能多多少少有听过,它主要的功能是用来实现应用服务的异步与解耦,同时也能起到削峰填谷.消息分发的作用. 消息队列在比较主要的一个作用是用 ...
- Spring Boot整合Thymeleaf视图层
目录 Spring Boot整合Thymeleaf Spring Boot整合Thymeleaf 的项目步骤 Thymeleaf 语法详解 Spring Boot整合Thymeleaf Spring ...
- Spring Boot 整合视图层技术,application全局配置文件
目录 Spring Boot 整合视图层技术 Spring Boot 整合jsp Spring Boot 整合freemarker Spring Boot 整合视图层技术 Spring Boot 整合 ...
- struts2 spring mybatis 整合(test)
这几天搭了个spring+struts2+mybatis的架子,练练手,顺便熟悉熟悉struts2. 环境:myEclipse10+tomcat7+jdk1.6(1.8的jre报错,所以换成了1.6) ...
- Spring Boot整合Dubbo使用及开发笔记
一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...
- spring boot 整合dubbo
dubbo与springboot的集成和使用dubbo-spring-boot-starter SpringBoot整合Dubbo2.5.10(官方的spring-boot-starter0.1.0) ...
- Dubbo HelloWord 与 Spring Boot 整合
实现消费者项目代码调用提供者项目代码,使用 zookeeper 做为注册中心 interface 项目 pom.xml <?xml version="1.0" encodin ...
- Spring Boot 整合 Dubbo和Zookeeper
Spring Boot 整合 Dubbo和Zookeeper Spring Boot 整合 Dubbo和Zookeeper 环境介绍 Zookeeper 安装 启动 Dubbo admin 搭建 创建 ...
- Spring Boot 整合 Apache Dubbo
Apache Dubbo是一款高性能.轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. 注意,是 Apache Dubb ...
随机推荐
- pl sql 查询显示乱码解决方法——设置环境变量NLS_LANG
用oracle进行查询的时候,有的时候会出现查询结果为乱码的情况,此时要设置一个环境变量NLS_LANG. 此变量的值如何获得呢?运行下面sql语句就可以获得: select userenv('lan ...
- JQ实战天猫淘宝放大镜
这个特效平时生活中很常见,话不多说先上效果图. 首先布局,遮罩层是这个效果中的重点精华,也就是下面代码中的shade. <style> * { margin:0px; padding:0p ...
- es6编写reactjs事件处理函数绑定this三种方式
第一种:官方推荐的: class LoginControl extends React.Component { constructor(props) { super(props); this.hand ...
- 性能测试分享:Jmeter多机协作原理
性能测试分享:Jmeter多机协作原理 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90 ...
- llinux svn安装
1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) [plain] view plain copy print? sudo apt-get ...
- 国付宝ecshop,shopex,shopnc在线支付接口,php版本支付接口开发
最近应一个客户的要求,给他的一个ecshop商城开发国付宝在线支付接口.国付宝估计大家比较陌生,但是他集成了很多银行的一些网银接口,所以比较方便.号称国家级的第三方支付平台.最近有增加了域名验证,就是 ...
- android中全局异常捕捉
android中全局异常捕捉 只要写代码就会有bug,但是我们要想办法收集到客户的bug.有第三方bugly或者友盟等可以收集.但是,android原生就提供了有关收集异常的api,所以我们来学习一下 ...
- 一次young gc耗时过长优化过程
1 问题源起 上游系统通过公司rpc框架调用我们系统接口超时(默认超时时间为100ms)数量从50次/分突然上涨到2000次/分,在发生变化时间段里我们的系统也没有做过代码变更,但上游系统的调用 ...
- 原生态JS实现banner图的常用所有功能
虽然,用jQuery实现banner图的各种效果十分简单快捷,但是我今天用css+js代码实现了几个banner图的常用功能,效果还不错. 此次,主要想实现以下功能: 1. banner图循环不间断切 ...
- SIP DB33标准笔记 监控图像获取
实时监控图像的获取: a) 实时监控图像的获取过程应包括获取实时流.释放实时流.应使用 RFC 3261 中定义的方法INVITE 获取一个摄像机的实时监控视频流. 取消没有完成的连接应采用 CANC ...