spring-boot整合dubbo:Spring-boot-dubbo-starter
为什么要写这个小工具
如果你用过Spring-boot来提供dubbo服务,相信使用中有很多“不爽”的地方。既然使用springboot,那么能用注解的地方绝不用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是使用比较多一个。但是用起来很不方便。如果能像Springboot定义SpringMVC的filter那样简单声明一个bean就好了。恩,其实就是这样。
@Bean ProviderFilterproviderFilter(){ returnnewProviderFilter(); } staticclassProviderFilterextendsAbstractDubboProviderFilterSupport{ publicResultinvoke(Invoker>invoker,Invocationinvocation){ System.out.println("ProviderFilter"); returninvoker.invoke(invocation); } }
更定制化的需求,可以使用Dubbo的@Activate注解来定制化Filter,那么可以这样
@Bean CustomFiltercustomFilter(){ returnnewCustomFilter(); } @Activate(group=Constants.PROVIDER) staticclassCustomFilterextendsAbstractDubboFilterSupport{ publicResultinvoke(Invoker>invoker,Invocationinvocation)throwsRpcException{ System.out.println("ProviderFilter2"); returninvoker.invoke(invocation); } publicFiltergetDefaultExtension(){ returnthis; } }
以上所述是小编给大家介绍的spring-boot整合dubbo:Spring-boot-dubbo-starter,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!