欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

spring-boot整合dubbo:Spring-boot-dubbo-starter

时间:2021-05-03 10:02:24|栏目:JAVA代码|点击:

为什么要写这个小工具

如果你用过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;
  }
 }

上一篇:Java Swing中的文本框(JTextField)与文本区(JTextArea)使用实例

栏    目:JAVA代码

下一篇:Java类加载机制实现流程及原理详解

本文标题:spring-boot整合dubbo:Spring-boot-dubbo-starter

本文地址:http://www.codeinn.net/misctech/113899.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有