為什么要寫這個小工具
如果你用過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