服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - spring-boot整合dubbo:Spring-boot-dubbo-starter

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

2020-10-05 12:47atheva Java教程

这篇文章主要介绍了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的相关参数,例如下面就是一个简单的消费者的配置

?
1
2
3
4
5
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就好了。恩,其实就是这样。

?
1
2
3
4
5
6
7
8
9
10
@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,那么可以这样

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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;
 }
}

以上所述是小编给大家介绍的spring-boot整合dubbo:Spring-boot-dubbo-starter,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://www.cnblogs.com/lizo/p/6853474.html

延伸 · 阅读

精彩推荐